1、冒泡排序

  • 算法思想

    • 冒泡排序是交换类排序。
    • 第一趟:第一个元素比第二个元素比较大,则交换它们,第二个元素比第三个元素比较大,则交换它们,……。这样保证最后一个元素最大。
    • 第二趟:第一个元素比第二个元素比较大,则交换它们,第二个元素比第三个元素比较大,则交换它们,……。这样保证倒数第二个元素第二大。
    • …….
    • 假如中间有一趟没有交换元素,说明已经有序了

      2、选择排序

  • 算法思想

    • 第一趟让最小的元素处于最左边的位置,第二趟让第二小的元素处于左边第二的位置…,此排序算法不是交换类排序

      3、快速排序

      ```java private static void quickSort(Integer[] arr, Integer start, Integer end){ if (start > end){ return; } // 中间一个数确定位置,两边数组小于、大于它 Integer mid = sortOne(arr, start, end); quickSort(arr, start, mid -1); quickSort(arr, mid + 1, end); }

private static Integer sortOne(Integer[] arr, Integer start, Integer end){ int temp = arr[start]; int low = start + 1; int high = end; while (low <= high){ while (arr[low] <= temp && low <= high){ low++; } while (arr[high] > temp && low <= high){ high—; } if (low <= high){ int t = arr[low]; arr[low] = arr[high]; arr[high] = t; }

  1. }
  2. arr[start] = arr[high];
  3. arr[high] = temp;
  4. return high;

} ```