冒泡排序是将相邻的两个数进行比较,将大数调换到后面,调换完成之后再一次与后边相邻的数进行比较再调换,最后把最大的数调换到最后的位置。在进行第二轮比较,比较前n-1个数,再把最大的数调换到最后,一次类推,直到循环到第一个数。比较完成之后从小到大排序。
选择排序是设定一个变量k存放最大值的下标,假设第一个数是最大值,与后边相邻的数一次进行比较,假如后边的数大于前边的数,则把大数的下标值赋值给k,当一轮比较完成之后,最大数是带k下标的数组元素,看最大值是否是第一个数,如果不是,把第一个数与最大数进行交换,第一个数变为最大数,紧接着进行第二轮比较,比较余下的数,以此类推比较完成之后,数值从大到小排列。
两者不同之处在于冒泡排序两两比较如果前边大于后边则马上调换,是一个大数往后调换的过程,选择排序只是记录最大值的下标,一轮比较完之后,如果最大值不是第一个值才进行调换位置,是一个大数往前调换的过程。
|