插入排序C语言实现

    技术2025-03-26  8

    关于插入排序其原理很简单,像起扑克牌一样。但是在实现上需要注意一些细节,下面用C语言来实现插入排序算法:

    int main(){

    int a[14]={100,20,32,23,56,48,23,14,56,74,147,99877,5142,36}; //一个有14个元素的数组

    int i,k,cur; // 其中cur是指当前要插入的那个数字,显然我们需要从第二个数字开始插入

    for(i=1;i<14;i++){

    cur = a[i];//当前要插入的数字

    j = i - 1;//获得要插入数字的前一个数字

    while(a[j]>cur&& j>=0){

    a[j+1] = a[j];//如果a[j]大于当前要插入的数字,其要向后移动一下

    j--;//继续与其它的已经排好序数字们比较,看看这些数字有没有比当前要插入的数字大的

    }

    if(j!=(i-1)){

    a[j+1] = cur; // 如果第i个数字比前面的都大,不需要重新插入

    }

    }

       for(i=0;i<14;i++)      /*输出排序后的结果*/   {      printf("%4d, ",a[i]);   }

    return 0;

    }

    注意处理边界情况

    最新回复(0)