冒泡排序

冒泡排序是通过不断的比较相邻的两个元素。如果顺序不对,就将他们交换,直到所有的元素都不再需要交换,就完成了排序。

算法描述(以升序为例)

  1. 比较相邻的两个元素,如果第一个大于第二个,就交换它们;
  2. 对每一对相邻元素用1中的方式处理,直到数组的结尾,此时,最大的元素应该在最后边。
  3. 对数组再次用1、2的方式遍历,除了最后一个元素。
  4. 重复1-3,直到排序完成。

算法可以用以下的动图来表示:

算法示意图

算法代码

public void sort(int[] arr, int n) {
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n-1-i; j++) {
            if(arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}
©2024 Rayjun    PowerBy Hexo