c语言经典排序算法(8种-含源代码)(3)

发布时间:2021-06-06

鸡尾酒配方

temp = input[i]; /* 操作当前元素,先保存在其它变量中 */

for (j = i - 1;j>-1&&input[j] > temp ; j--) /* 从当前元素的上一个元素开始查找合适的位置 */

{

input[j + 1] = input[j]; /* 一边找一边移动元素 */

input[j] = temp;

}

}

}

四.带哨兵的直接排序法

/**

* 带哨兵的直接插入排序,数组的第一个元素不用于存储有效数据

* 将input[0]作为哨兵,可以避免判定input[j]中,数组是否越界

* 因为在j--的过程中,当j减小到0时,变成了input[0]与input[0]

* 自身进行比较,很明显这个时候说明位置i之前的数字都比input[i]小

* 位置i上的数字不需要移动,直接进入下一轮的插入比较。

*

*/

void InsertionSortWithPiquet(int input[],int len)

{

int i,j;

for (i = 2; i < len; i++) /* 保证数组input第一元素的存储数据无效,从第二个数据开始与它前面的元素比较 */

{

input[0] = input[i];

for (j = i - 1; input[j] > input[0] ; j--)

{

input[j + 1] = input[j];

input[j] = input[0]; /* input[j]一直都是排序的元素中最大的那一个 */ }

}

}

五.冒泡法

/* 冒泡排序法 */

void Bublesort(int a[],int n)

{

c语言经典排序算法(8种-含源代码)(3).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219