曾经这是梦开始的地方。
快速排序是解决leetcode题库中的基础,快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。
https://blog.csdn.net/morewindows/article/details/6684558原文
https://www.runoob.com/w3cnote/quick-sort.html菜鸟java
package leetcode;
import java.util.ArrayList;
import java.util.List;
public class demo74 {
//划分数组
public int AdjustArray(int s[],int l,int r){
int i=l,j=r;
int x=s[l];
while (i<j){
//从右往左
while (i<j&&x<=s[j]) j--;
if (i<j){
s[i]=s[j];
i++;
}
//从左往右
while (i<j&&x>s[i]) i++;
if (i<j){
s[j]=s[i];
j--;
}
}
s[i]=x;
return i;
}
//分治,递归
public void quick_sort1(int s[],int l,int r){
if(l<r){
int i= AdjustArray(s, l, r);
quick_sort1(s,l,i-1);
quick_sort1(s,i+1,r);
}
}
//测试
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
int s []={2,2,1,4,2,6,7};
demo74 aaa=new demo74();
aaa.quick_sort1(s,0,s.length-1);
for (int dsd :s){
// System.out.println(dsd);
list.add(dsd);
}
System.out.println(list);
}
}