黑马程序员技术交流社区
标题:
选择排序和冒泡排序怎么理解
[打印本页]
作者:
lzlizhi
时间:
2016-3-29 14:18
标题:
选择排序和冒泡排序怎么理解
如题,选择排序和冒泡排序经常混为一谈,尤其是第二层for循环那里,总是感觉晕晕的,希望来人解答
作者:
fangbuqianxing
时间:
2016-3-29 19:58
冒泡排序是将相邻的两个数进行比较,将大数调换到后面,调换完成之后再一次与后边相邻的数进行比较再调换,最后把最大的数调换到最后的位置。在进行第二轮比较,比较前n-1个数,再把最大的数调换到最后,一次类推,直到循环到第一个数。比较完成之后从小到大排序。
选择排序是设定一个变量k存放最大值的下标,假设第一个数是最大值,与后边相邻的数一次进行比较,假如后边的数大于前边的数,则把大数的下标值赋值给k,当一轮比较完成之后,最大数是带k下标的数组元素,看最大值是否是第一个数,如果不是,把第一个数与最大数进行交换,第一个数变为最大数,紧接着进行第二轮比较,比较余下的数,以此类推比较完成之后,数值从大到小排列。
两者不同之处在于冒泡排序两两比较如果前边大于后边则马上调换,是一个大数往后调换的过程,选择排序只是记录最大值的下标,一轮比较完之后,如果最大值不是第一个值才进行调换位置,是一个大数往前调换的过程。
作者:
Sniper-L
时间:
2016-3-31 00:49
第二层是比较的方法,你自己琢磨一下
作者:
muzipiao
时间:
2016-3-31 09:30
fangbuqianxing 发表于 2016-3-29 19:58
冒泡排序是将相邻的两个数进行比较,将大数调换到后面,调换完成之后再一次与后边相邻的数进行比较再调换, ...
原来如此,我原来也学过,都快忘完了,看了有想起来了,谢谢
作者:
a157051803
时间:
2016-4-1 00:51
冒泡排序是相邻两数进行对比,即在第二层for循环中是j和j+1进行比较,而选择排序却是不是相邻两数对比,是第一个数先和其他所有数对比,完了再用第二个数和后面的所有数对比,即是第一层的i和第二层的j对比
作者:
堕落天使
时间:
2016-4-1 12:22
排序的方式不同,选择排序是一个数和所有的数比较,冒泡是相邻的两个数比较
作者:
tdwydan1
时间:
2016-4-1 20:56
首先你需要理解选择和冒泡的排序是如何进行的;
作者:
张立鹏
时间:
2016-4-1 21:37
这个时候画个图,模拟一下排序的过程就理解了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2