首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

排序算法您懂了吗

2012-09-20 
排序算法你懂了吗?1.选择排序法A分析:上面的代码实现一个数组中的各个元素从大到小排列,简单的来讲它的原

排序算法你懂了吗?

1.选择排序法A

分析:上面的代码实现一个数组中的各个元素从大到小排列,简单的来讲它的原理是这样的,先拿数组中的第一个元素s[0]与后面的每个元素作比较,如果s[0]的值小于它后面的元素那么则s[0]则与这个值交换值,否则不做交换,s[0]的值将会保持不变。例如数组中的元素s[0] ,s[1],s[2],s[3],s[4],s[5]的值依次为5 2 1 7 96 ,首先用s[0]的值5与后面的值相比,当遇到比5大的值时,s[0]的值就变为这个比较大的值。s[0]与s[1]比较,显然5 >2,则不做交换,s[0]仍然为5,再用s[0]与s[2]做比较,5 >1仍然不做交换,s[0]还是等于5。s[0]与s[3]做比较,5 <7 所以s[0] 和s[3]做交换,此时s[0] =7,s[3] = 5。仍然继续用s[0]与s[4]作比较,7 < 9 所以s[0]与s[4]做交换,此时s[0]=9,s[4]= 7,最后用s[0]与s[5]作比较,9 > 6,不做交换,所以最终s[0]为第一轮比较之后的最大值为9,经过第一轮比较厚的结果为 9 2 1 5 7 6。然后开始第二轮比较,用s[1]与他后面的值做相同方式的比较,最终s[1]将得到第二轮比较后的最大值为7,第二轮比较后的结果为9 7 1 2 5 6,依次类推,将会最终得到s[0],s[1],s[2],s[3],s[4],s[5]的值按降序排列。

但是当我仔细观察循环过程,可以发现,每循环依次就要为临时变量temp分配一块内存空间,这样的比较方式无疑是一种浪费内存效率极低的方式,那么我们就来改造一下这个算法。


2.排序算法B

3.冒泡排序法


排序算法多种多样,但效率各有不同,更多排序算法请点击我。

热点排行