今天给大家简单的说一下插入排序,斗过地主的都深有体会,插入排序跟起牌排好顺序是一样一样的。
以下为代码:(此代码在VS2008中编译通过,并运行得到排序结果)
#include "stdafx.h"
#include "stdio.h"
void InsertionSort(int A[],const int num);
int _tmain(int argc, _TCHAR* argv[])
{
int a[] = {3,7,12,6,10,20,3,2,2};
int num = sizeof(a)/sizeof(int);
InsertionSort(a,num);
for(int i=0;i<num;i++)
printf("%d\t",a[i]);
getchar();
return 0;
}
void InsertionSort(int A[],const int num){
//输入待排序的数组
int temp = 0;
for(int i = 1;i<num;i++)
{
temp = A[i];//待排的元素
for(int j = i-1;j>=0;j--){
if(temp >= A[j]){
A[j+1] = temp;
break;
}
else{
A[j+1] = A[j];
}
if(j == 0)
A[0] = temp;
}
}
}