插入算法的C语言实现

来源:互联网 发布:Java反射 invoke参数 编辑:程序博客网 时间:2024/05/22 02:01
//插入排序

#include <stdio.h>
#include <stdlib.h>


// 一个数的插入方法

/*
int main()
{
int a[10] = {1, 2, 3, 4, 6, 7, 8, 9, 10, 5};
int temp = a[9];
int j = 9, i = 0;
while (j > 0 && a[j -1] > temp)
{
a[j] = a[j - 1];  //只要a[j-1]的值大于5,就把a[j-1]往后移动,每次j的值都会减1,即把a[j-1]的值放到a[j]的位置。
j--;
}
a[j] = temp;    //由于j的值是变化的,所以此处需要再次声明a[j]=temp;
for(i = 0; i <10; i++)
{
printf("%d ", a[i]);
}
printf("\n");
system("pause");
return 0;
}
*/


//从一个数插入排序方法可以得出所有数打乱的排序方法
//顺序全部乱的插入方法

int main()
{
int a[10] = {1, 3, 2, 4, 7, 6, 10, 8, 5, 9};
int i, j =9;// j:下标
int temp;
for(i = 0; i < 10; i++)
{
temp = a[i];
j = i;
·while(j > 0 && a[j - 1] > temp)
{
a[j] = a[j - 1];
j--;
}
a[j] = temp;
}

for(i = 0; i< 10; i++)
{
printf("%d ", a[i]);
}
printf("\n");
system("pause");
return 0;
}

0 0
原创粉丝点击