插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。
图例:
C语言代码:
- #include <stdio.h>
- int main()
- {
- int a[5]={5,4,3,2,1},i;
- printf("原本的数字为:");
- for(i=0;i<5;i++)
- {
- printf("%d ",a[i]);
- }
- printf("\n");
- void insert (int a[],int n);
- insert (a,5);
- printf("插入法排序后:");
- for(i=0;i<5;i++)
- {
- printf("%d ",a[i]);
- }
- return 0;
- }
- //插入法
- void insert(int a[],int n)
- {
- int i,j,temp;
- for(i=1;i<n;i++)
- {
- temp=a[i];//temp为要插入的元素
- j=i-1;
- while(j>=0&&temp<a[j])//从a[i-1]开始找比a[i]小的数,并把数组元素后移
- {
- a[j+1]=a[j];
- j--;
- }
- a[j+1]=temp;//插入
- }
- }
引用: