<java排序,效率高的是哪种排序方法-生活常识-春风百科
> 生活常识 > 列表
java排序,效率高的是哪种排序方法
时间:2024-12-23 16:17:12
答案

和所有其他语言是一样的。应该还是快速排序效率最高。

public static void bubbleSort(int a[]) {

int len = a.length;

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

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

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

int temp = a[j];

a[j] = a[j + 1];

a[j + 1] = temp;

}

}

}

}

public static void selectSort(int a[]) {

int temp = 0;

int len = a.length;

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

int min = a[i];

int index = i;

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

if (min > a[j]) {

min = a[j];

index = j;

}

}

temp = a[i];

a[i] = a[index];

a[index] = temp;

}

}

public static void insertSort(int a[]) {

int len = a.length;

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

int temp = a[i];// 待插入的值

int index = i;// 待插入的位置

while (index > 0 && a[index - 1] > temp) {

a[index] = a[index - 1];// 待插入的位置重新赋更大的值

index--;// 位置往前移

}

a[index] = temp;

}

}

public static int partition(int a[], int low, int height) {

int key = a[low];

while (low < height) {

while (low < height && a[height] >= key)

height--;

a[low] = a[height];

while (low < height && a[low] <= key)

low++;

a[height] = a[low];

}

a[low] = key;

return low;

}

public static void quickSort(int a[], int low, int height) {

if (low < height) {

int result = partition(a, low, height);

quickSort(a, low, result - 1);

quickSort(a, result + 1, height);

}

}

测试结果

------------------------------------------

测试数据10000

冒泡排序:120ms

选择排序:32ms

插入排序:20ms

快速排序:7ms

------------------------------------------

测试数据100000

冒泡排序:13098ms

选择排序:2334ms

插入排序:1264ms

快速排序:23ms

效率差距很大啊!!!!

推荐
© 2024 春风百科