当前位置:   article > 正文

冒泡排序、选择排序、插入排序~java版

冒泡排序、选择排序、插入排序~java版

1、冒泡排序(Bubble Sort)

冒泡排序的基本思想是多次遍历待排序序列,每次遍历时两两比较相邻元素,如果顺序不对则交换,直到整个序列有序为止。

  1. public class BubbleSort {
  2. public static void bubbleSort(int[] arr) {
  3. if (arr == null || arr.length <= 1) {
  4. return;
  5. }
  6. int n = arr.length;
  7. for (int i = 0; i < n - 1; i++) {
  8. boolean swapped = false;
  9. for (int j = 0; j < n - 1 - i; j++) {
  10. if (arr[j] > arr[j + 1]) {
  11. // 交换元素
  12. int temp = arr[j];
  13. arr[j] = arr[j + 1];
  14. arr[j + 1] = temp;
  15. swapped = true;
  16. }
  17. }
  18. // 如果一轮遍历中没有发生交换,说明已经有序
  19. if (!swapped) {
  20. break;
  21. }
  22. }
  23. }
  24. public static void main(String[] args) {
  25. int[] arr = { 5, 2, 9, 3, 6, 1, 8, 7, 4 };
  26. bubbleSort(arr);
  27. System.out.println("array: " + Arrays.toString(arr));
  28. }
  29. }

2、选择排序(Selection Sort)

选择排序的基本思想是每次从未排序部分选择最小(或最大)的元素,然后与未排序部分的第一个元素交换位置。

  1. public class SelectionSort {
  2. public static void selectionSort(int[] arr) {
  3. if (arr == null || arr.length <= 1) {
  4. return;
  5. }
  6. int n = arr.length;
  7. for (int i = 0; i < n - 1; i++) {
  8. int minIndex = i;
  9. for (int j = i + 1; j < n; j++) {
  10. if (arr[j] < arr[minIndex]) {
  11. minIndex = j;
  12. }
  13. }
  14. // 将找到的最小元素与当前位置交换
  15. int temp = arr[i];
  16. arr[i] = arr[minIndex];
  17. arr[minIndex] = temp;
  18. }
  19. }
  20. public static void main(String[] args) {
  21. int[] arr = { 5, 2, 9, 3, 6, 1, 8, 7, 4 };
  22. selectionSort(arr);
  23. System.out.println("array: " + Arrays.toString(arr));
  24. }
  25. }

3、插入排序(Insertion Sort)

插入排序的基本思想是将未排序部分的元素逐个插入到已排序部分的合适位置,初始时已排序部分只有第一个元素。

  1. public class InsertionSort {
  2. public static void insertionSort(int[] arr) {
  3. if (arr == null || arr.length <= 1) {
  4. return;
  5. }
  6. int n = arr.length;
  7. for (int i = 1; i < n; i++) {
  8. int key = arr[i];
  9. int j = i - 1;
  10. // 将比key大的元素都向后移动
  11. while (j >= 0 && arr[j] > key) {
  12. arr[j + 1] = arr[j];
  13. j--;
  14. }
  15. // 插入key
  16. arr[j + 1] = key;
  17. }
  18. }
  19. public static void main(String[] args) {
  20. int[] arr = { 5, 2, 9, 3, 6, 1, 8, 7, 4 };
  21. insertionSort(arr);
  22. System.out.println("array: " + Arrays.toString(arr));
  23. }
  24. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/777225
推荐阅读
相关标签
  

闽ICP备14008679号