快速排序算法
package work3;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class work3 {
public static int[] list = new int[200000];
static Random rand = new Random();
public static void main(String[] args)
{
List<String> listx = new ArrayList<String>();
int i = 0;
for( i = 0;i<200000;i++)
{
list[i] =
rand.nextInt() ;
System.out.println(""+list[i]);
listx.add(""+list[i]);
}
//quickSort(list,0,list.length-1);
Collections.sort(listx);
for(int i1 = 0;i1<200000;i1++)
{
//System.out.println(""+list[i1]);
System.out.println(""+listx);
}
}
public static void quickSort(int[] list, int low, int high) {
int lo = low;
int hi = high;
if (lo >= hi)
return;
boolean flag=true;
while (lo != hi) {
if (list[lo] > list[hi]) {
//交换数字
int temp = list[lo];
list[lo] = list[hi];
list[hi] = temp;
//决定下标移动,还是上标移动
flag = (flag == true) ? false : true;
}
//将指针向前或者向后移动
if(flag)
hi--;
else
lo++;
}
//将数组分开两半,确定每个数字的正确位置
lo--;
hi++;
quickSort(list, low, lo);
quickSort(list, hi, high);
}
}