易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
C语言算法--插入排序
C语言算法--插入排序
/*-----------------------------
*
* For 排序算法学习
* IDE DEV-CPP4.9.2
* Auhtor Czp
* Date 2012/10/17
*------------------------------
*/
#include <stdlib.h>
#include <stdio.h>
//插入排序
void
insertSort(
int
* arr,
size_t
n)
{
int
i,j,key;
for
(i=1;i<n;i++) //初始:ar={169,45,2,489,469,4,-778,156}
{
key = arr[i];
j=i-1;
while
(j>=0&&arr[j]>key) //把key与前面的arr[0~j]进行比较
arr[j+1] = arr[j--]; //找到一个比key大的数就把它后移
arr[j+1]=key; //上面的循环终止,则j+1就key的位置
}
/*
*Loop0:169,45,2,489,469,4,-778,156 数组原型 取key=arr[2]=2
*Loop1:2,169,45,489,469,4,-778,156 key=2比arr[1] arr[0]小,找到arr[2]的位置arr[0]->
*Lopp3:2,169,45,469,489,4,-778,156 进行插入和ArrayList的insert(value,index)一样
*Loop4:2,169,45,469,489,4,-778,156 .......
*Loop5:2,4,169,45,469,489,-778,156 ...
*Loop6:-778,2,4,169,45,469,489,156 ...
*Loop7:-778,2,4,156,169,45,469,489 ...
*/
}
int
main(
int
argc,
char
*argv[])
{
int
arr[] = {169,45,2,489,469,4,-778,156};
size_t
len = (
sizeof
arr/
sizeof
arr[0]);
insertSort(arr,len);
int
i;
for
(i=0;i<len;i++)
{
printf("%d ,",arr[i]);
}
//====>-778,2,4,156,169,45,469,489
getchar();
return
0;
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图