Java实现之快速排序

来源:互联网 发布:matlab求矩阵乘法 编辑:程序博客网 时间:2024/06/18 04:28
package com.daxin;import java.util.Arrays;/** *  * 快速排序 *  * @author Daxin * */public class QuickSort {/** *  * @param array *            待排序数组 * @param start *            开始位置 * @param end *            结束位置 * @return */public static int partition(int[] array, int start, int end) {// 固定的切分方式int key = array[start];while (start < end) {while (array[end] >= key && end > start) {// 从后半部分向前扫描end--;}array[start] = array[end];//将后面扫描符合的结果放到前面位置上while (array[start] <= key && end > start) {// 从前半部分向后扫描start++;}array[end] = array[start];//将前面扫描符合的结果放到后面位置上}array[end] = key;// key存储到最终的位置return end;}public static void sort(int[] array, int start, int end) {if (start >= end) {return;}int index = partition(array, start, end);sort(array, start, index - 1);sort(array, index + 1, end);}public static void main(String[] args) {int[] arr = new int[] { 11, 6, 5, 6, 4, 9, 5, 3, 5, 9, 15 };System.out.println(Arrays.toString(arr));sort(arr, 0, arr.length - 1);System.out.println(Arrays.toString(arr));}}

0 0
原创粉丝点击