基础算法之快速排序
今天在leetcode时发现自己连快速排序都不会写了,所以开了这个版块,将自己所遇到的基础算法都放到这里。
package QuickSort;
import java.util.Random;
public class QuickSort {
static public void swap(int a, int b)
{
int temp = 0;
temp = a;
a = b;
b = temp;
}
static public void quickSort(int start , int end , int[] num)
{
if(start >= end)
{
return;
}
int key = num[start];
int from = start;
int to = end;
while(from < to)
{
while(from < to && key <= num[to])
{
--to;
}
num[from] = num[to];
while(from < to && key >= num[from])
{
++from;
}
num[to] = num[from];
}
num[from] = key;
quickSort(start, from - 1, num);
quickSort(to + 1, end, num);
}
static public void main(String[] args)
{
System.out.println("Start");
//生成排序数据
Random seed = new Random();
int numSize = 10;
int[] number = new int[numSize];
for(int loc = 0; loc <= numSize - 1; ++loc)
{
number[loc] = seed.nextInt(numSize) + 1;
}
quickSort(0, numSize - 1, number);
for(int temp : number)
{
System.out.println(temp);
}
System.out.println("End");
}
}