C 语言 实现int数组的插值排序

C 语言 实现int数组的插值排序

 

/*** Insert Sort ***/
#include <stdio.h>

// 将int数据打印出来
void PrintArr(int* a,int len)
{
for (int i = 0;i<len;i++)
{
printf(" %d ",a[i]);
}
printf("\n");
}

void InsertSort(int* arr,int len)
{
// X 用来保存 要插入的数值
int x = 0;
// 从第二个数开始 与前面所有的数进行比较.如果小于前面的数,
// 就把这个值 放到前面那个数的位置其实值向后移一位.
// 产生插入的效果
for ( int i = 1 ;i < len ;i ++)
{
// 这里 j = 0 且 < i 意思就是i之前的所有数值的个数
for (int j = 0; j < i;j ++)
{
if( *(arr + i) < *(arr + j) )
{
// 把 i 之的数据保存一份. 因为要进行移动位置的操作.
x = *(arr + i);
// 把 j(包括) 与 i(不包括因为要放到 j的位置) 之间的数后面移一位
for (int w = i - j;w > 0;w --)
{
*(arr + w + j) = *(arr + w + j - 1);
}
// 最后 把记录的 i 处的数据放到 j 处位置
*(arr + j ) = x;
}
}
PrintArr(arr,len);
}
}

int main()
{
int a[] = {4,2,1,6,8,3,9,5,0};
int len = sizeof(a)/sizeof(int);

InsertSort(a,len);

}



转载于:https://www.cnblogs.com/easyfrog/archive/2012/03/28/2422438.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值