java快速排序

来源:互联网 发布:求矩阵的行列式的值 编辑:程序博客网 时间:2024/05/18 12:31
public class QuickSort{public static void main(String[] args) {int[] arr = {5,6,6,4,9,5,5,5,2,7,8,1};print(arr);sort(arr, 0, arr.length - 1);print(arr);}//打印方法public static void print(int[] arr) {for(int i = 0; i < arr.length; i++){System.out.print(arr[i] + " ");}System.out.println();}//排序方法public static void sort(int[] arr, int low, int high){if(low >= high)return;if((high-low) == 1){if(arr[low] > arr[high])swap(arr, low, high);return;}int temp = arr[low];int left = low + 1;int right = high;while(left < right) {//从left位置开始向右找大于temp的值while(left < right) {if(arr[left] > temp)break;left++;}//从right开始向左找小于temp的值while(left <= right) {if(arr[right] <= temp)break;right--;}if(left < right){swap(arr, left, right);left++;right--;}}swap(arr, low, right);sort(arr, low, right - 1);sort(arr, right + 1, high);}//交换函数public static void swap(int[] arr, int i, int j) {int temp ;temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}
0 0