>>冒泡排序与选择排序的异同
相同之处: 从代码上,看去其实有很多熟悉的地方,都是两层循环,第一层循环都是length-1次,第二层循环次数都受到第一层循环的影响。
从思路上,两种算法都有一种逐个击破的思想,冒泡排序,每一次内层循环都选择出一个可以确定位置的数;选择排序,每一次内层循环也是选择出一个可以确定位置的数,只是实现的方式不同。
不同之处: 从代码上,冒泡排序的第一层循环变量i仅仅用与循环计数,并不参加排序本身;而选择排序的第一层循环变量i的含义代表着每一次准备选择并确定的数的位置,它的值将会根据每次内层循环获得的下标的值进行交换。
从思路上,冒泡排序在每次循环中都会对数组进行排序交换,而选择排序只是在确定了那个是想要的之后才进行替换。就好比,一个靠数量,一个靠质量。
下面是两个算法swap的次数(上面是冒泡,下面是选择):