吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2142|回复: 5
收起左侧

[C&C++ 转载] 【笔记】菜鸟学算法(—)

  [复制链接]
俏玖 发表于 2019-12-15 18:31
插入排序
   通过不断与前一个数比较,交换位置来完成排序
    一组数据,sum{1,5,3,7,2},先拿出数字5,和第一个数字1比较,5比1大,位置不变;
拿出数字3,和前一个数字5比较,3比5小,将3和5交换位置,接着和前一个数字比较,3比1大,
位置不变;拿出数字7,7比5大,位置不变;拿出数字2,2比7小,交换位置,接着和前一个数字
5比较,2比5小,交换位置,接着和前一位数字3比较,2比3小,交换位置,接着和前一个数1比较
2比1大,位置不变,排序结束,sum{1,2,3,5,7}.
  1,5,3,7,2 --> 1,5,3,7,2 --> 1,3,5,7,2 --> 1,3,5,7,2 --> 1,3,5,2,7 --> 1,3,2,5,7-->
  1,2,3,5,7




[C] 纯文本查看 复制代码
for (int j = 1; j <5; j++)	//5是数组的长度
	{
		key = sum[j];			//拿出后一个数
		m = j - 1;				//定位到前一个数
		while(m>0&&sum[m] > key)//判断是否挨个比较完
		{ 
			sum[m + 1] = sum[m];//将前一个数给后一个数
			m = m - 1;			//定位到前一位的前一位数
			sum[m + 1] = key;	//将后一位数给前一位
		}
		
	}




免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
ck69882 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

304775988 发表于 2019-12-15 22:34
另一个说法是冒泡算法
BlueMoonWolf 发表于 2019-12-15 22:58
插入排序可以理解为:
左边为已排序完了的。。。从右边开始取数和他左边的比,当比要取出的数大时,就往右边移动一个位置,再比较,直到找到比他小的值,再插在这个比他小的值的右边。


其实我觉得在写的时候,有几个要点要注意:
一个就是,一开始取左边第一个为已排序完的,因为是一个,所以也算排序完的了。
一个是拿来比较的值是从第二个开始来比的,下标是1开始的。。

这两个我倒是经常弄忘。。。
xiaohui888 发表于 2019-12-15 23:31
5个成员,比较7次才排序完成。不应该是几个成员就比较几次就能排序完成的么??
小胖兴 发表于 2020-7-3 19:26
因为接触算法不多,之前听过还有自己用过的就冒泡排序,这个应该也算是冒泡排序的一种吧???
哈哈哈,小犊子 发表于 2020-7-3 20:04
感觉稍微改一下就是插入排序了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 03:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表