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)+" "); } } }
相关推荐
Masimaro 2020-06-21
清溪算法君老号 2020-06-01
earthhouge 2020-06-25
randy0 2020-11-17
lixiaotao 2020-10-07
美丽的泡沫 2020-09-08
nongfusanquan0 2020-08-18
hang0 2020-08-16
earthhouge 2020-08-15
算法改变人生 2020-07-28
troysps 2020-07-19
Broadview 2020-07-19
chenfei0 2020-07-18
风吹夏天 2020-07-07
yangjingdong00 2020-07-05
数据与算法之美 2020-07-05
shawsun 2020-07-04