插入排序
通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
算法步骤
1.将第一个待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素看做无序序列。
2.从头到尾一次扫描未排序序列,将扫描到的每个元素插入有序序列适当位置。(如果插入的元素与有序序列某个元素相等,则将待插入元素插入到相当元素的后面)
代码实现
C++代码实现:
void insert_sort(int *Num, int len){ //插入排序
for (int i = 1; i < len; i++) {
int temp = Num[i];
int j = i;
while(j > 0 && Num[j-1] > temp){
Num[j] = Num[j-1];
j--;
}
Num[j] = temp;
}
}
#### Lua代码实现:
function insert_sort(arry, lenth) --插入排序
for i = 2, lenth, 1 do --lua数组中角标从1开始
local temp = arry[i];
local j = i;
while(j > 1 and arry[j - 1] > temp) do
arry[j] = arry[j - 1];
j = j -1;
end
arry[j] = temp;
end
end
JS代码实现:
function insert_sort(numArry, length) {
for (var i = 1; i < length; i++) {
var temp = numArry[i];
var j = i;
while(j > 0 && numArry[j - 1] > temp){
numArry[j] = numArry[j-1];
j--
}
numArry[j] = temp;
}
}