略
排序查找之概述冒泡排序
分析
有一个数组,内部是一段无序的int
类型的数据,如何通过一个算法来对其进行排序操作呢?这里使用的是冒泡排序的算法。顾名思义,冒泡排序使用的方法是(升序):
让较大的数如同气泡般缓缓向后移动,具体实现就是:比较第一个与第二个数,如果是升序,则不发生任何变化,但是如果不是升序,那就第一个和第二个互换位置。最后再比较第二个和第三个数并执行如上炒作,一直到数组全部遍历完成。现在为止冒泡排序的第一趟排序完成,数组中最大的数已经被换到了最后一位。
然后再进行第二趟操作,与第一趟类似比较第一个与第二个数,依次类推,一直遍历到数组倒数第二位数据(最后一位在第一趟已经确定位置,不用比较)。
最后一直到没有两个数进行比较,此时数组里的数据被排列成了升序,排序完成。
代码实现
1 | public static int[] doSort(int[] arr){ |
总结
如何写出冒泡排序算法的代码?
对算法进行拆分,例如,拆分每一趟使用
for (i = 0;i<len;i++)
控制趟数,用for (j=0;j<len-i;j++)
控制比较位置的变化,用if (arr[j]>arr[j+1])
来判断是否进行交换操作。