如何理解排序算法:[1]直接插入排序法
直接插入排序算法是排序算法中最简单的,但在寻找插入位置时的效率不高。基本思想就是将一个待排序的数字在已经排序的序列中寻找找到一个插入位置进行插入。直接插入排序的算法重点在于寻找插入位置。
操作方法
(01)设定待排序的数据保存在数组data[]中
(02)设置外层循环,即从第二个数据到最后一个数据。(只有一个数据则为考虑为已经是有序的,所以循环从第二个数据开始)其中n为待排序数据的长度。
(03)定义一个用来临时保存将要进行插入操作的元素temp。
(04)编写内层循环,寻找插入位置并移动元素。
(05)将tmp插入到寻找到的位置j+1
(06)最后附上全部运行代码及运行截图#include "stdafx.h"#include <iostream>using namespace std;template <class T>void outputArr(T&,int);int main(){int i, j;int data[] = { 23, 98, 7, 28, 92, 14, 89, 1 };//共8个数据int n = sizeof(data) / sizeof(data[0]);cout << "排序前的结果:n";outputArr(data, n);for ( i = 1; i < n;i++){int temp = data[i];for ( j = i - 1; j >= 0 && data[j]>temp;j--){data[j + 1] = data[j];}data[j + 1] = temp;}cout << "排序后的结果:n";outputArr(data, n);return 0;}template <class T>void outputArr(T &a,int n){for (int i = 0; i < n;i++){cout << a[i] << " ";}cout << endl;}
(07)可以通过引入哨兵来将算法改进,避免了边界检查。即将数组的第一个位置替换上面的temp临时变量。
-
怎么桥接两个无线路由器:[1]TP-link路由器
怎么桥接两个无线路由器;折现先分享一下TP-link路由器桥接方法第一台无线路由器设置(01)首先我们登入和宽带猫连接的路由器:如图(02)在无线设置-基本设置中设置“SSID号”、“信道”,设置固定信道号,如图:(03)在无线设置-无线安全设置中设置无线信号加密信息记录该无线路...
-
MATLAB使用importdata读取字符数据文件并绘图
本文首先使用importdata()读取(导入)含有字符和数据的文本格式数据文件,然后介绍通过“.”+数据名的方式读取结构数组中的数据,最后使用plot()绘制折线图。操作方法(01)第一,首先准备数据,下图txt数据文件是某年12个月的月收入情况,既包含数字又包含字符。(02)第二,将该数...
-
如何将图片转换成word文字
在工作生活中,我们经常为图片文字识别的问题而烦恼,要知道图片中的文字是不可编辑的,我们如果想将图片中的文字提取出来,就只能使用识别工具对图片进行识别,将其转换成Word文字。可是,我们要选择哪一款识别工具呢?大家如何将图片转换成Word文字呢?下面我们就一起来看看...
-
迅雷bt种子怎么用 迅雷种子怎么打开
BitTorrent(简称BT)是一个文件分发协议,它通过URL识别内容并且和网络无缝结合。它对比HTTP/FTP协议,MMS/RTSP流媒体协议等下载方式的优势在于,一个文件的下载者们下载的同时也在不断互相上传数据,使文件源(可以是服务器源也可以是个人源,一般特指第一个做种者或种子...