算法导论笔记——插入排序C语言实现

第二章

算法基础

2.1插入排序

对于少量元素的排序,插入排序是个有效算法,工作方式类似于排序一手扑克牌。
每次从桌上拿一张牌并将它插入另一手中正确的位置,为找到正确位置,依此对
手中的牌进行比较,直到找出正确位置。

该算法是 原址排序
原址排序:在排序算法中,如果输入数组中仅有常数个数元素需在排序过程中存

储在数组之外,则称排序算法是原址的。例如:插入排序,堆排序,快速排序。

伪代码:

INSERTION-SORT(A)
for j 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

C语言实现:
#include<stdio.h>
int main()
{
int i,j,key,a[10]; //key用于保存要比较的数字
for(i = 0;i<10;i++)
scanf("%d",&a[i]);
for(j = 1;j < 10;j++) 
{
key = a[j];
i = j - 1;
while(i > -1&& key > a[i]) //找位置
{
a[i+1] = a[i];
i--;
}
a[i+1] = key;     //插入该位置
}
for(i = 0;i<10;i++)
{ printf("%d ",a[i]);
}
return 0;
}


猜你喜欢

转载自blog.csdn.net/jazrynwong/article/details/79632144
今日推荐