快速排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public static void (String[] args) {

int arr[] ={75,70,85,80,60,100,90};

QuickSort(arr,0,6);
System.out.println(Arrays.toString(arr));
}

public static int [] QuickSort(int arr[],int start,int end){

if(end>start){

int partition = partition(arr,start,end);

QuickSort(arr,start,partition-1);
QuickSort(arr,partition+1,end);

}

return arr;
}

public static int partition(int arr[],int start,int end){

int prior = arr[start];
int partition=start;
int left = start;
int right = end;

while(left<right){

while (right >left && arr[right]>=prior ){
right--;
}

while (left<right && arr[left] <= prior ){
left++;
}

int temp=arr[right];
arr[right]=arr[left];
arr[left]=temp;
}

if(start!=left){
arr[start]=arr[left];
arr[left] = prior;

partition=left;
}

return partition;
}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [email protected]