问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2023-11-19 20:08

我来回答

5个回答

热心网友 时间:2024-11-02 05:01

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

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-11-02 05:02

看具体情况使用.顺序排列,索引最快是LinkedList,有插入操作的是ArrayList
Verctor是同步的,安全,性能较低

热心网友 时间:2024-11-02 05:01

你百度一下快速排序。它是左右两边同时排序的,效率很高。

热心网友 时间:2024-11-02 04:58

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

热心网友 时间:2024-11-02 04:57

具体情况具体分析。。。
数据基本有序了用冒泡最快了
归并排序占用空间
适用于对空间要求不高的场合
堆排序情况也跟归并差不多
但也与堆的实现有关系
快速排序一般来说很好,适用于数据量大的情况
数据量少的话还是别用了
有时反而不如O(n^2)的排序方法
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
iPhone XR电量百分比怎么设置 Django如何使用网页嵌套网页(2023年最新解答) 社保之前工作缴了 后面工作不缴。自己要怎么续上?自己缴要缴多少?每... 壁挂炉数字不亮了怎么回事了解壁挂炉数字不亮的原因及解决方法_百度知 ... 单反长镜头和短镜头什么区别 ai的剪切蒙版快捷键是什么 自学当程序员需要哪些基础 程序员,需要学什么课程 想当一名出色的程序员数学必须要很好吗 华为路由器192.168.1.1怎样设置? 快手免费送手机还要加他微信最后他还要你微信密码手机号... 快手说送苹果手机加QQ群要、微信密码、支付密码还说登录微信五... 逆水寒风沙区迷宫怎么走 现在一个手机号怎么创另一个6 券商可以买卖股指期货么1 驾驶证满分学习后怎么拿驾驶证108 在玩吃鸡的时候,有哪些瞬间让你感觉游戏体验极差? 有没有类似于《刺客信条》这样风格画面的电影?4 男士护肤品该按怎么样的顺序用,还有什么时候用呢呢? 穿过光幕变身,还有龙骑的是什么1 手机屏幕最上面的那个N是什么意思啊?怎么可以关掉啊?9 为什么说光纤通信比电缆通信的容量大2 光纤通信系统比电缆通信有何特点1 光纤通信与电缆通信的主要区别是什么1&#47;15 男朋友比我小6岁,但是我想30岁结婚 安全生产台帐的保管期限为() 假面骑士龙骑能不能在镜子外战斗2 如何判断一个无铭牌的电机是多少千瓦 三星手机,最上面的N 是什么意思??181 大众六座车有哪些车型 如图所示,数轴上表示2、 的对应点分别为C、B,点C是AB的中点,则点A表示... 如何将学习强国消息标为未读?1 被盗了实名认证了怎么办?3 被盗了,实名认证被改了。手机号也被改了。要怎么样才能找... 烧坏了三相电机可是没有铭牌,怎么确定功率???? 和一名异性是双向暗恋,该怎样结束暗恋开始恋爱? 一台三相异步电动机没铭牌怎么看功率。 双向暗恋应该如何避免错过?你有什么看法? 李煜诗词集?36 李煜古诗词大全 ...分期付款小易的爸爸买了一台9000元的电脑第一次付款30%以后每月付... 上海东方明珠旁边有个商场叫什么名字?11 进货查验记录和相关凭证保存期限不得少于产品保质期满后多少个月没有... 六安瓜片保质期、保存 企业如何管理自己员工的? 三星手机右上角有个N,是什么意思?4 工艺管路图中2RX20N是什么意思3 我的被人盗用了怎么办?26 被人盗了怎么找回来? 好 我现在怀孕两个月了 不知道不可以涂指甲油 现在途过两次 ...1