总结Java常用排序算法
算法简介
排序算法是计算机程序设计中最基本的问题之一,它的目的是将一组“无序”的数据,按照某种规律进行排列。在Java中,常用的排序算法有如下几种:
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 归并排序
- 快速排序
- 堆排序
冒泡排序
冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就将它们交换过来,直到没有元素需要交换,再执行下一次遍历。
示例代码如下:
public static void bubbleSort(int[] arr) {
int len = arr.length;
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
快速排序
快速排序使用了分治策略来把一个序列分为两个子序列。步骤为:
- 从数列中挑出一个基准值。
- 将所有比基准值小的数放在基准值前面,所有比基准值大的数放在基准值的后面(相同的数可以放到任何一边)。这个称为分区(partition)操作。
- 对左右两个子序列分别递归地进行步骤1~2。
示例代码如下:
public static void quickSort(int[] arr, int left, int right) {
if (left < right) {
int i = left;
int j = right;
int pivot = arr[left];
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
arr[i] = arr[j];
while (i < j && arr[i] <= pivot) {
i++;
}
arr[j] = arr[i];
}
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
}
结语
以上就是常用的Java排序算法详细介绍和示例代码。在实际开发中,应根据数据量大小、数据特点、时间复杂度等来选择合适的排序算法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:总结Java常用排序算法 - Python技术站