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

java算法题

发布网友 发布时间:2022-04-21 17:58

我来回答

5个回答

热心网友 时间:2023-10-02 00:23

快速排序一般来说 比较适用于数据量大的情况
public class QuickSoft {

private void swap(int a[],int i,int j)
{
int tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}

private int partition(int a[],int p,int r)
{
int point = a[r];
//将小于等于point的元素移到左边区域
//将大于point的元素移到右边区域
int index=p;
for (int i = index; i < r; ++ i) {
if (a[i]-point <= 0) {
swap(a, index++, i);
}
}
swap(a,index,r);
return index;
}

public void qsort(int a[],int p,int r)
{
if(p< r)
{
//确定拆分点,并对数组元素进行移动
//这是快速排序算法的关键步骤
int q=partition(a,p,r);
//对左半段排序
qsort(a,p,q-1);
//对右半段排序
qsort(a,q+1,r);
}
}

public static void main(String[] args) {
//声明一个类
QuickSoft ms=new QuickSoft();
int len=10;
int a[]=new int[len];
//初始化a数组

System.out.println("原始数组如下:");
for(int i=0;i< a.length;i++)
{
//产生a.length个随机数
a[i] = (int)(Math.random()*100000);
System.out.println(a[i]);
}
System.out.println("---------------------");
System.out.println("第一次分组后");
ms.partition(a,0,len-1);
for(int i=0;i< a.length;i++)
{
System.out.println(a[i]);
}
System.out.println("---------------------");
//快速排序
ms.qsort(a, 0, len-1);

System.out.println("排序后的数组如下:");
for(int i=0;i< a.length;i++)
{
System.out.println(a[i]);
}

}
}

热心网友 时间:2023-10-02 00:23

如果是不重复的1---1亿个数字,那么你知道这个数字是多少的时候它的位置就已经确定了。使用下面的方法应该是最快的(可能申请不到那么大的内存,你可以分片读入文件):
public class SortXX {
private static int [] nums = new int[10000];

private static int[] sortedArray = new int[10000];

public static void main(String[] args) {
for(int i=0; i<nums.length; i++) {

sortedArray[nums[i]] = nums[i];

}

}

}
这个好像叫做什么水桶排序法,忘了,看下是不是你需要的。这个复杂度是On的

热心网友 时间:2023-10-02 00:24

jdk提供了一个算法,Arrays.sort();平均速度貌似要比插入、快速之类的快很多

热心网友 时间:2023-10-02 00:24

各种排序算法都有复杂度的公式,比较一下就知道了,比如冒泡排序,快速排序等

热心网友 时间:2023-10-02 00:25

直接塞进 HashSet 里就ok了........
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 word另存为会将原有的文档覆盖么? 如何在word文档中找回覆盖的文件 干百合煮水的功效 马蹄百合汤怎么做 我在覆盖保存WORD文档时,不出现提示对话框? 马蹄煮水吃了有什么作用? Word2007,如何保存? 梨和荸荠百合能一起煮水喝吗 莲子百合马蹄糖水做法 甘蔗,马蹄,雪梨煮水有什么功效? 雪耳百合马蹄鹌鹑蛋糖水的功效 用马蹄煮水.喝它的汤有什么功效 百合荸荠粥这道菜有哪些特点? 马蹄有什么作用?食疗 马蹄加甘蔗煮水有什么作用 莲子百合梨和马蹄的功效与作用 覆盖并保存的word如何恢复覆盖前的文档? 马蹄和甘蔗煮水的功效是什么? 如何将图片覆盖word整个文档 马蹄煮水的功效与禁忌分别是? java算法题。小菜鸟的大问题。面试题。 java 基础算法 鲜柠檬水怎么做? JAVA算法题目:int数组内取数相加凑数 鲜柠檬水怎么做 Java算法题:判断并输出101-200中所有素数,代码中... 柠檬水要怎么做?刚买回来的新鲜柠檬,要怎样弄呢... java 算法题:将下面的字符串按规则拆开,保存进li... 怎样才能做一杯好喝的柠檬水? 一道关于java排序算法的题目(蓝桥杯编程题) 哈啰出行给他转钱了,取消订单了能要回来吗 怎样制作柠檬水才好喝 java算法问题 排列组合 给定一组字符串,产生所有可... 柠檬水怎么做好吃? java算法题,这样做对吗?哪位大神能给我解释一下... 华为荣耀9x系统更新暂停会不会重新更新 柠檬水怎么做 java中:-4&lt;&lt;2怎么算的。 -4321&gt;&gt;&gt;30这题有什么简... 哈啰顺风车乘客取消订单车费还能追回吗 Java面试算法题求解?