public class quick_sort {
public static void main(String[] args) {
int Array[]=new int[10];
for (int i=0;i<Array.length;i++) {
Array[i]=(int)(100*Math.random());
}
System.out.println("排序前的数组");
for (int i=0;i<Array.length;i++) {
System.out.println(Array[i]);
}
Array=quick_sort_method(Array,0,Array.length-1);
System.out.println("排序后的数组");
for (int i=0;i<Array.length;i++) {
System.out.println(Array[i]);
}
}
public static int[] quick_sort_method(int[] array,int start,int end) {
if(array.length<1||start<0||end>array.length||start>end)
return null;
int smallIndex=partition(array,start,end);//获取index是分区的点
if(smallIndex>start)
quick_sort_method(array,start,smallIndex-1);
if(smallIndex<end)
quick_sort_method(array,smallIndex+1,end);
return array;
}
private static int partition(int[] array, int start, int end) {
int base=array[end];
int pos=start-1;
int temp;
for(int i=start;i<=end;i++) {
if(array[i]<=base) {
pos=pos+1;
temp=array[pos];
array[pos]=array[i];
array[i]=temp; }
}
return pos;
}
}
# -*- coding: utf-8 -*-
"""
Created on Wed Jul 31 16:11:18 2019
@author: pt0521
"""
def quick_sort(array, l, r):
if l < r:
q = partition(array, l, r)
quick_sort(array, l, q - 1)
quick_sort(array, q + 1, r)
def partition(array, l, r):
x = array[r]#以右边的数为基准
i = l - 1#目前有0个数比基准数小
for j in range(l, r):
if array[j] <= x:#判断左边有几个数比基准数小
i += 1
array[i], array[j] = array[j], array[i]#把比基准数小的数放在应该放的序位上去
array[i + 1], array[r] = array[r], array[i+1]
return i+1
if __name__=='__main__':
a=[1,24,27,89,56,2,89,12,11]
quick_sort(a,0,len(a)-1)
print(a)