算法(4).冒泡排序

 /**
 * <b>冒泡排序</b><br><br>
 * 
 * 基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对
 * 相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的
 * 数比较后发现它们的排序与排序要求相反时,就将它们互换。 
 * 

 *
 */
public class BubbleSort {
 public static int[] sort(int[] array) {
  
  for(int i = 0; i < array.length - 1; i++) {
   
   for(int j = 0; j < array.length - 1; j++) {
    
    if (array[j] > array[j + 1]) {
     int temp = array[j];
     array[j] = array[j + 1];
     array[j + 1] = temp;
    }
   }
  }
  
  return array;
 }
}
  1. 考虑最差的情况,最大的值在第一位,那么将两两比较移动的话,最少要比较length-1次才能将他移动到最后位置。

  2. 那么要循环length-1次。

  3. 要将每个数据都比较个遍,那么只要要比较length-1次才行,最后一个值无需比较。

  4. 那么要再循环length-1次。

  5. 两两比较,将大的值放在右侧。

  6. 完成所有循环,排序就结束了。

 

    属于非常简单粗暴的方法。

你可能感兴趣的:(算法(4).冒泡排序)