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

一道关于排序的java面试题..算法帝进·~

发布网友 发布时间:2022-04-26 09:42

我来回答

1个回答

热心网友 时间:2022-06-26 22:57

1. 采用快速排序,一般可以达到O(Nlog(N)),最糟糕情况是O(N^2)。2. 基本思想:对于排列成递增序列,每次将数组分成两半,确保左边的小于右边的,而后递归调用;递减序列相反。3. 代码:仅供参考(代码摘自 http://www.roseindia.net/java/beginners/arrayexamples/QuickSort.shtml),加了中文注释。public class QuickSort{
public static void main(String a[]){
int i;
int array[] = {12,9,4,99,120,1,3,10,13};
System.out.println("Quick Sort\n\n");
System.out.println("Values Before the sort:\n");
for(i = 0; i<array.length; i++)
System.out.print( array[i]+" ");
System.out.println();
quick_srt(array,0,array.length-1);
System.out.print("Values after the sort:\n");
for(i = 0; i <array.length; i++)
System.out.print(array[i]+" ");
System.out.println();
System.out.println("PAUSE");
}
public static void quick_srt(int array[],int low, int n){
int lo = low;
int hi = n;
if (lo >= n) { // 判断排序是否终止
return;
}
int mid = array[(lo + hi) / 2];// 取数组中值,保证左边的都比它小,右边的都比它大
while (lo < hi) {
while (lo<hi && array[lo] < mid) { // 跳过已经满足的,左边小。
lo++;
}
while (lo<hi && array[hi] > mid) { // 跳过已经满足的,右边大。
hi--;
}
if (lo < hi) {//各自指到左右两端不符合条件的位置,交互
int T = array[lo];
array[lo] = array[hi];
array[hi] = T;
}
}
if (hi < lo) {
int T = hi;
hi = lo;
lo = T;
}
// 分别处理两个字串
quick_srt(array, low, lo); // 左
quick_srt(array, lo == low ? lo+1 : lo, n); // 右
}
}4. BTW,中文参考楼上提供的博文链接。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
龚琳娜音乐作品 龚琳娜的歌(全部) ...她说做不了好朋友,还可以做朋友,是什么意思啊!以后还 ..._百度... ...Out )攻略_荒野行动卡在登陆界面怎么办 卡屏解决方法 “柳色和愁为重折”的出处是哪里 ...下身是蓝黑色的牛仔五分裤 配同样暖黄色的帆布鞋还是白色帆布鞋好看... 绝地求生全军出击G港怎么打 G港打法详解-高手进阶-安族网 下肢残疾人 不能动 需要有人照顾的人 她能学什么? ...共6角。如果三种 硬币的钱数相等,各有 多少枚? 什么品牌的睫毛膏值得推荐? java是如何面试的,给提让我写,还是直接问我,我来回答(我觉得有些问题不好说吧) 谁有JAVA面试题分享一下呗,现在复习没有头绪浪费了很多时间 《Java面试全解析核心知识点与典型面试题》pdf下载在线阅读全文,求百度网盘云资源 通常java的面试都会问些什么? java面试怎么做准备 得到app实习面试java问什么 涉嫌严重违纪怎么处罚 什么是严重违纪违法 严重违纪违法是什么意思 违纪性质是什么意思 违纪违法行为要承担哪些责任? 什么是违纪,什么是犯罪 违纪怎么处理 违纪是怎么处理的 违纪和违法的区别 违纪与违法的区别是什么? 违纪算不算犯罪? 违纪是什么意思 什么是违纪? 违纪是包括哪些范围? W10系统桌面总是自动生成一个OptionTable.dat文件? 桌面总是自动生成一个文件夹 为什么每打开一个文件夹都会自动生成一个文件 求助。。。如何彻底删除自动生成的文件 电脑、win10系统自动生生成stash文件夹在桌面上,删除待会儿又出现,怎么解决? 系统盘里总是自动生成垃圾文件占了空间怎么办? 现在学个物业方面的证书有前景吗?比如物业管理师,物业管理经理证等... 高级物业职业经理人证书有用吗 为什么总是会自动生成文件夹 什么是物业经理人证书,对于注册公司有啥作用 请问考&quot;物业管理师&quot;和&quot;物业经理证&quot;有什么用,两者有什么区别 电脑C盘根目录老是自动生成一个文件!!! 由全国职业资格考试认证中心颁发的物业管理师资格证有用么? 为什么盘里会自动生成文件夹? 电脑总卡是为什么 电脑总卡怎么办 手机总卡怎么办 为什么电脑总卡? 电脑上怎么制作酒店总卡? 电脑总卡死?