21xrx.com
2024-09-19 10:09:42 Thursday
登录
文章检索 我的文章 写文章
我最近在学习Java基础排序算法
2023-06-10 19:24:58 深夜i     --     --
Java 排序算法 代码实现

我最近在学习Java基础排序算法。在这个过程中,我了解了常见的几种排序算法:冒泡排序、选择排序、插入排序、快速排序和归并排序。

首先让我们看看冒泡排序。这个算法的思路很简单:比较相邻的元素,如果第一个比第二个大,就交换他们两个。这样的操作会持续到没有任何一对数需要交换为止。以下是这个算法的代码实现:


public void bubbleSort(int[] arr) {

  int n = arr.length;

  for (int i = 0; i < n - 1; i++) {

    for (int j = 0; j < n - i - 1; j++) {

      if (arr[j] > arr[j + 1]) {

        int temp = arr[j];

        arr[j] = arr[j + 1];

        arr[j + 1] = temp;

      }

    }

  }

}

接下来我们来看看选择排序。这个算法的思路是找到数组中最小的元素,将它和数组的第一个元素交换位置。接着再在剩下的元素中找到最小的元素,将它和数组的第二个元素交换位置。不断重复这样的操作,直到排序完成。以下是这个算法的代码实现:


public void selectionSort(int[] arr) {

  int n = arr.length;

  for (int i = 0; i < n - 1; i++) {

    int minIndex = i;

    for (int j = i + 1; j < n; j++) {

      if (arr[j] < arr[minIndex])

        minIndex = j;

      

    }

    int temp = arr[minIndex];

    arr[minIndex] = arr[i];

    arr[i] = temp;

  }

}

最后我们来看看插入排序。这个算法的思路是将数组分为已排序和未排序两部分。一开始,已排序部分只有第一个元素。接着,将未排序部分中的第一个元素插入到已排序部分的适当位置。重复这个过程,直到未排序部分为空为止。以下是这个算法的代码实现:


public void insertionSort(int[] arr) {

  int n = arr.length;

  for (int i = 1; i < n; i++) {

    int key = arr[i];

    int j = i - 1;

    while (j >= 0 && arr[j] > key) {

      arr[j + 1] = arr[j];

      j--;

    }

    arr[j + 1] = key;

  }

}

通过学习以上这些排序算法,我对Java的基础知识有了更深入的了解。如果你也正好处于学习Java的阶段,不妨试着实现这些代码,并切身体会算法的巧妙之处吧。

标题:学习Java基础排序算法的笔记

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复