直接插入排序

来源:互联网 发布:手机淘宝举报有用吗 编辑:程序博客网 时间:2024/05/19 16:21

比较简单就直接上代码,代码注释的也比较的详细

这个排序的时间复杂度是O(n的平方)  ---- 它的性能比冒泡排序和简单选择排序好一点

代码

# include <stdio.h>void InsertSort(int a[],int len){int i,j,temp;for(i=1;i<len;i++){    //这里传入的是一个数组,首先比较的是前两个的大小if(a[i]<a[i-1]){temp = a[i];//如果后面一个小的话,就把这个小的值赋给temp,for(j=i-1;a[j]>temp;j--){  // 然后定位到小的值的前面一位把他后移,当j--到一数值的时候a[j]<tempa[j+1] = a[j];}a[j+1] = temp;//说明了j这个位置的数值比temp小,在j+1的位置赋值为temp}}}int main(){int i;int a[]={1,6,33,22,6,12};InsertSort(a,6);for(i=0;i<6;i++)printf("%d\n",a[i]);return 0;}
这个是在vc++6.0下运行的结果


0 0
原创粉丝点击