#include "stdio.h"
/*
将a[j]插入到前面a[0…j-1]的有序区间所用的方法进行改写,用数据交换代替数据后移。如果a[j]前一个数据a[j-1] > a[j],就交换a[j]和a[j-1],再j--直到a[j-1] <= a[j]。这样也可以实现将一个新数据新并入到有序区间。
*/
void innerSetSort(int *p, int n)
{
int i, j, tmp;
for (i = 1; i < n; i++)
{
tmp = p[i];
for (j = i -1; j >= 0 && p[j] > tmp; j--)
{
p[j+1] = p[j];
}
p[j+1] = tmp;
}
}
int main(int argc, const char * argv[])
{
int p[] = {4, 2, 7, 1, 9, 3, 5};
int i;
int n = sizeof(p)/sizeof(int);
printf("选择排序:\n ");
innerSetSort(p, n);
for(i = 0; i < sizeof(p)/sizeof(int); i++)
{
printf("%d ", p[i]);
}
putchar(10);
return 0;
}

3587

被折叠的 条评论
为什么被折叠?



