题目:给定10个数,按从小到大进行排序。
选择排序原理:先把这10个数放在数组arr中,不妨令第一个数(即arr[0])为a,然后让a和arr[1]进行比较,确定二者之间的最小数;然后如果a>arr[1],令a=arr[1],再让a和其他数比较,确定最小数,然后arr[1]重复上述过程...注意到a排在第一个数,从而把最小数排在第一位,然后进行从小到大排序。(上面a和arr[1]比较的时候,为什么我没有说明a<arr[1]的情况呢,这里就很明显了,a所在位置就是我们要找的最小数嘛)
代码如下:
冒泡排序:先把十个数放在数组acr中,不妨令第一个数(即acr[0])为b,然后让b和acr[1]进行比较,确定二者之间的较大数,如果b>acr[1],则acr[1]=b,然后acr[1]和acr[2]进行比较,依次下去从而确定最大数...然后完成从小到大排序。
代码如下:
两者之间的区别:目前我能想到的就是定义上的区别,冒泡排序是两两进行比较(得出最大数或者最小数),选择排序是确定某个位置来比较(第一个位置或者最后一个位置)。
我刚刚想到了一个就是单看我上面的两个代码,选择排序先确定最小数,冒泡排序先确定最大数,你认为对吗?
这是不对的,因为确定最大值和最小值是可以通过改变循环内条件进行确定的,比如
选择排序先确定最大值:
冒泡排序先确定最小值:
如有不对,欢迎指正。