Java 排序算法 快速排序
Posted esrevinud
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 排序算法 快速排序相关的知识,希望对你有一定的参考价值。
import java.util.ArrayList;
import java.util.Random;
/*
*返回一个数组,下标0是该元素的下标,下标1是该元素的值
*/
public class minNumber {
//每次返回接受数组中最小的数字,以数组的形式返回,0是最小数,1是它的下标
public static ArrayList<Integer> findMinNumber(ArrayList<Integer> list){
ArrayList<Integer> min_number=new ArrayList<Integer>();
min_number.add(list.get(0));
min_number.add(0);
for(int i=1;i<list.size();i++){
if(list.get(i)<min_number.get(0)){
min_number.add(0,list.get(i));
min_number.add(1,i);
}
}
return min_number;
}
public static void main(String[] args){
//第一个是等待排序的列表,第二个相当于第一个的拷贝,第三个就是整理好的数组
ArrayList<Integer> list=new ArrayList<Integer>(10);
ArrayList<Integer> pre_sort=new ArrayList<Integer>(10);
ArrayList<Integer> after_sort=new ArrayList<Integer>(10);
//装载数组对象,生成随机加入数组
//因为之后每次会删掉list的元素,所以每次给pre_sort也保存一下
for(int i=0;i<10;i++){
Random random=new Random();
int number=random.nextInt(100);
list.add(i,number);
pre_sort.add(i,number);
}
//每次找出原数组最小的元素加入新数组
for(int j=0;j<pre_sort.size();j++){
//min数组用来保存每次找出的最小数和它的下标,
int[] min=new int[]{minNumber.findMinNumber(list).get(0),minNumber.findMinNumber(list).get(1)};
after_sort.add(min[0]);
if(list.size()>=1){
list.remove(min[1]);
}
}
System.out.println("排序前:");
//打印pre_sort数组的元素
for(int i=0;i<=pre_sort.size()-1;i++){
System.out.print(pre_sort.get(i)+" ");
}
System.out.println();
System.out.println("排序后:");
//打印after_sort数组的元素
for(int i=0;i<=pre_sort.size()-1;i++){
System.out.print(after_sort.get(i)+" ");
}
}
}
以上是关于Java 排序算法 快速排序的主要内容,如果未能解决你的问题,请参考以下文章