中易网

java排序,效率高的是哪种排序方法

答案:5  悬赏:20  
解决时间 2021-01-15 06:44
java排序,效率高的是哪种排序方法
最佳答案
和所有其他语言是一样的。应该还是快速排序效率最高。

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
效率差距很大啊!!!!
全部回答
看具体情况使用.顺序排列,索引最快是LinkedList,有插入操作的是ArrayList
Verctor是同步的,安全,性能较低
你百度一下快速排序。它是左右两边同时排序的,效率很高。
具体情况具体分析。。。
数据基本有序了用冒泡最快了
归并排序占用空间
适用于对空间要求不高的场合
堆排序情况也跟归并差不多
但也与堆的实现有关系
快速排序一般来说很好,适用于数据量大的情况
数据量少的话还是别用了
有时反而不如O(n^2)的排序方法
和所有其他语言是一样的。应该还是快速排序效率最高。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有一个1000位数 每个数位都是8 除以26余多少
单片机怎样快速入门?怎样看懂芯片手册
朝阳区青少年棋院怎么去啊,有事要去办理
求∫(lnx)^2d{(x^4)/4}
食物在小肠与大肠中各分别几小时才排便
双妻命是什么意思
兴义市虹桥办公家具店地址有知道的么?有点事
指出金属中键型和结构的主要特征为什么
风纷纷坠讨厌每次都偷偷的卷起我的裙子然后在
我月收入六千元,该怎么理财呢!
浴袍带子丢了浴袍怎么处理
善意的谎言和恶意的谎言本质上有什么区别
天堂岛2海盗岛怎样招僵尸
安卓手机没电时,输入代码就可以恢复50%电的
特区彩票论坛帐号冻结是咋回事
推荐资讯
初恋前男友再回来,还可以回到从前吗
高清图解,如何用两样工具鉴定琥珀蜜蜡真假
松下的MJ-L500这款榨汁机有人研究过吗?怎么
纤纤美容院地址在什么地方,想过去办事
秀美资源和资源那个好用?
采样口 下游方向不小于6倍直径,上游不小于3
用虞字给姓王的取名
石桥派出所地址好找么,我有些事要过去
花田镇上花田错花田酒坊花田醉
年轻人该如何规划自己的人生?
左边一个木字右边一个宪是什么字啊
怎样区别高、中、低档地板砖
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?