您的位置:首页 > 其它

直接插入排序

2013-01-08 09:31 239 查看
发现人们写算法老是喜欢表达式,表达式只不过是脑中图片的展示,所以显示脑子的图片才是关键。不要过于抽象~

直接插入排序,正如其名,有两个不分,

有小到大排序

第一步:插入;第二步:排序;

Straight Insert Sortin

#include<stdio.h>
#define ARRAY_LENGTH 6
void swap(int *frontNum,int *behindNum){
int temp;
temp=*frontNum;
*frontNum=*behindNum;
*behindNum=temp;
}
void display(int nums[]){
int i;
for(i=0;i<ARRAY_LENGTH;i++){
printf("%d\n",nums[i]);
}
}
main(){
int nums[ARRAY_LENGTH]={8,2,4,9,3,6};
int front,behind;
for(behind=1;behind<ARRAY_LENGTH;behind++){
for(front=behind-1;front>=0&&nums[front]>nums[front+1];front--){
swap(&nums[front+1],&nums[front]);//已经跟behind没有关系了,在子序列中操作
}
}
display(nums);

}


我感觉这个版本的比较好,变量都有意义,而且代码模块话,也好维护
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: