1.java版
public class test {
public void quick(int[] arr,int begin,int end){
if(begin<end){
int key=arr[begin];
int i=begin;
int j=end;
while(i<j){
while(i<j && arr[j]>key){
j--;
}
if(i<j){
swap(arr,i,j);
i++;
}
while(i<j && arr[i]<key){
i++;
}
if(i<j){
swap(arr,i,j);
j--;
}
}
quick(arr,begin,i-1);
quick(arr,i+1,end);
}
}
public void swap(int[] arr,int i,int j){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
public static void main(String[] args) {
test t=new test();
int[] arr=new int[]{1,5,2,6,3,6,8,4};
int begin=0;
int end=arr.length-1;
t.quick(arr, begin, end);
for(int i:arr){
System.out.println(i);
}
}
}
2.python版
#快排
def demo(x,begin,end):
if begin<end:
key=x[begin]
i=begin
j=end
while i<j:
while i<j and x[j]>key:
j-=1
if i<j:
x[i]=x[j]
i+=1
while i<j and x[i]<key:
i+=1
if i<j:
x[j]=x[i]
j-=1
x[i]=key
demo(x,begin,i-1)
demo(x,i+1,end)
x=list(range(0,10))
random.shuffle(x)
print(x)
demo(x,0,len(x)-1)
print(x)