Java中排序的四种方式!实例整理

2023-10-11 09:51:02 浏览数 (1647)

排序是编程中常见的任务,它可以帮助我们将数据按照一定的规则进行排列,以便更容易查找和处理。本文将为编程小白介绍Java中的四种排序方式,并通过具体示例演示它们的用法。

1. 冒泡排序(Bubble Sort)

排序算法--冒泡排序(Java语言) - 知乎

冒泡排序是一种简单的排序算法,它反复遍历待排序的数据,比较相邻的两个元素,如果它们的顺序不对就交换它们,直到整个数组有序为止。

示例代码:

public class BubbleSort {
public static void main(String[] args) { int[] arr = {64, 34, 25, 12, 22, 11, 90}; 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; } } } System.out.println("冒泡排序后的数组:"); for (int num : arr) { System.out.print(num + " "); } } }

2. 选择排序(Selection Sort)

java - 算法总结-直接选择排序- 个人文章- SegmentFault 思否

选择排序是另一种简单的排序算法,它每次从未排序的部分中选择最小的元素,然后与未排序部分的第一个元素交换。

示例代码:

public class SelectionSort {
public static void main(String[] args) { int[] arr = {64, 34, 25, 12, 22, 11, 90}; 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[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } System.out.println("选择排序后的数组:"); for (int num : arr) { System.out.print(num + " "); } } }

3. 插入排序(Insertion Sort)

java - 算法总结-直接插入排序- 个人文章- SegmentFault 思否

插入排序将未排序的元素逐个插入到已排序的部分,最终形成一个有序数组。

示例代码:

public class InsertionSort {
public static void main(String[] args) { int[] arr = {64, 34, 25, 12, 22, 11, 90}; 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; } System.out.println("插入排序后的数组:"); for (int num : arr) { System.out.print(num + " "); } } }

4. 快速排序(Quick Sort)

排序算法-快速排序(Java实现) - 知乎

快速排序是一种分治排序算法,它选择一个基准元素,将小于基准的元素移到左边,大于基准的元素移到右边,然后递归地对左右两部分排序。

示例代码:

public class QuickSort {
public static void main(String[] args) { int[] arr = {64, 34, 25, 12, 22, 11, 90}; int n = arr.length; quickSort(arr, 0, n - 1); System.out.println("快速排序后的数组:"); for (int num : arr) { System.out.print(num + " "); } } public static void quickSort(int[] arr, int low, int high) { if (low < high) { int pi = partition(arr, low, high); quickSort(arr, low, pi - 1); quickSort(arr, pi + 1, high); } } public static int partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = low - 1; for (int j = low; j < high; j++) { if (arr[j] < pivot) { i++; int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } int temp = arr[i + 1]; arr[i + 1] = arr[high]; arr[high] = temp; return i + 1; } }

这四种排序算法是Java中常用的排序方法,它们在不同情况下有不同的性能表现。学会它们将有助于你更好地处理数据排序任务,为你的编程之路打下坚实的基础。希望这些示例能够帮助你理解和应用这些排序算法。

想了解更多编程知识?

如果你渴望深入了解编程和算法,以及更多的编程技能和资源,欢迎访问编程狮官网


无论你是刚刚入门编程的小白,还是已经具备一定编程经验的开发者,编程狮官网都是你学习和进一步提升技能的理想去处。我们提供的资源包括:

  • 编程教程:针对不同编程语言和技术的详细教程,逐步引导你学习和实践编程知识。
  • 实用技巧和提示:学习编程的诀窍,了解如何提高代码质量,调试程序,以及应对各种编程难题。
  • 项目示例:参与实际项目,锻炼编程技能。我们提供各种有趣的项目示例,从简单的小应用到复杂的开源项目。
  • 社区支持:与其他编程爱好者互动,分享经验,提出问题,获得答案,并建立有趣的编程社交圈。

无论你对Java中的排序算法感兴趣,还是想探索更广泛的编程世界,编程狮官网都将成为你编程学习的重要资源。不断学习和提升,你将能够应对更多的编程挑战,实现你的编程梦想。

祝愿你在编程的世界里取得成功,欢迎随时访问编程狮官网,一起探索无限可能!