#include <stdlib.h>
#include <stdio.h>
/*
* 插入排序 n^2为的效率。
* 具体思想:
* 将数组分为两部分,一部分是有序的,一部分为无序的
* 然后从无序中选取一个数插入在有序的数中的恰当的位置,
* 以此迭代,直到无序的数全部遍厉完毕
*/
void insert_sort(int a[], int n)
{
int i = 1;
int ti = 0;
int tx = 0;
int ts = 1, j = 0;
int min = a[ti];
for(i = 0; i < n; i++)
{
for(j = 0;j<i;j++)
{
if(a[i] < a[j])
{
int tmp = a[i];
int t = i;
for(t = i; t > j; t--)
{
a[t] = a[t-1];
}
a[j] = tmp;
break;
}
}
}
return ;
}
int main()
{
int a[] = {4, 2, 6, 5, 8, 3, 2, 10, 2342, 2, 4, 5, 7};
int n = sizeof a / sizeof(int);
printf("n is %d\n", n);
int i = 0;
printf("before sort is :\n");
for(i = 0;i < n;i++)
{
printf("%d, ", a[i]);
}
printf("\n");
insert_sort(a, n);
printf("after sort is :\n");
for( i = 0;i < n;i ++)
{
printf("%d, ", a[i]);
}
printf("\n");
return 0;
}
算法--插入排序
最新推荐文章于 2022-07-31 17:55:24 发布