java常见的排序方法(java排序总结)
在生活中,很多人可能想了解和弄清楚Java中这几种常见的排序方式你知道吗?快来看看吧!的相关问题?那么关于java常见的排序方法的答案我来给大家详细解答下。
冒泡排序
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
选择排序
public static void selectionSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
插入排序
public static void insertionSort(int[] arr) {
for (int i = 1; i < arr.length; 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;
}
}
快速排序
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pivot = partition(arr, low, high);
quickSort(arr, low, pivot - 1);
quickSort(arr, pivot + 1, high);
}
}
private 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集合框架中的排序算法,也可以提高排序效率。
温馨提示:通过以上关于Java中这几种常见的排序方式你知道吗?快来看看吧!内容介绍后,相信大家有新的了解,更希望可以对你有所帮助。