简单的插入排序
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
/*算法导论编程第2章 插入排序 */
int insertionSortASC(int a[],int length);
int insertionSortDESC(int a[],int length);
int main(int argc, char** argv) {
int a[] = {5,2,4,6,1,3};
insertionSortASC(a,sizeof(a)/sizeof(a[0]));
insertionSortDESC(a,sizeof(a)/sizeof(a[0]));
return 0;
}
/*
正序插入排序
2016年3月14日 15:06:00
*/
int insertionSortASC(int a[],int length){
int index = 1;
for(;index<length;index++){
int temp = a[index];
int lastPos = index;
for(int i=index-1;i>=0&&temp<a[i];i--){
a[i+1]=a[i];
lastPos = i;
}
a[lastPos]=temp;
}
for(int index=0;index<length-1;index++){
printf("%d\t",a[index]);
}
printf("%d\n",a[length-1]);
return 0;
}
/*
倒序插入排序
2016年3月14日 15:05:56
*/
int insertionSortDESC(int a[],int length){
int index = 1;
for(;index<length;index++){
int temp = a[index];
int lastPos = index;
for(int i=index-1;i>=0&&temp>a[i];i--){
a[i+1]=a[i];
lastPos = i;
}
a[lastPos]=temp;
}
for(int index=0;index<length-1;index++){
printf("%d\t",a[index]);
}
printf("%d\n",a[length-1]);
return 0;
}