C语言的代码:
#include <iostream>
using namespace std;
void insertionSort(int a[],int len){
int temp;
int i;//已排好序的序列的下一个元素(待插元素)的下标
int j;//有序序列的末尾下标
for(i = 1;i<len;i++){
temp = a[i];
// for(j = i-1;j>=0;j--){//遍历有序序列,与要插入的元素比较
// if(a[j]>temp){
// a[j+1] = a[j];//将元素后移,满足条件后移一个位置
// }
// }
j=i-1;
while(j>=0&&a[j]>temp){
a[j+1] = a[j];
j--;
}
a[j+1] = temp; //插入
}
printf("插入排序的结果:\n");
for(int i = 0 ; i< len; i++){
printf("%d ",a[i]);
}
printf("\n\n");
}
int main() {
int a[] = {1,5,10,5,6,4,7,8};
insertionSort(a,8);
std::cout << "Hello, World!" << std::endl;
return 0;
}
伪代码:
for j=2 to A.length
key = a[j]
//插入a[j] 到已经排好序的a[1....j-1]
i=j-1
while i>0 and a[i]>key
a[i+1] = a[i]
i =i-1
a[i+1] =key
网友评论