八大排序算法之快速排序

来源:互联网 发布:数据集成工程师 编辑:程序博客网 时间:2024/05/21 12:13
package com.zyg.sort;public class QuickSortAlgorithm{// 快速排序public static void quickSort(int a[], int left, int right){if (left < right){// 获取数组中第left个元素在数组中的位置,将数组分为两部分int q = partition(a, left, right);// 左边部分进行排序quickSort(a, left, q - 1);// 右边部分进行排序quickSort(a, q + 1, right);}}public static int partition(int a[], int left, int right){// 记录第left个元素的值int pivot = a[left];while (left < right){// 从右边开始遍历数组,找到一个比pivot值小的元素while (left < right && pivot <= a[right])right--;// 将找到的元素值赋给第left个元素a[left] = a[right];// 从左边开始遍历数组,找到一个比pivot值大的元素while (left < right && pivot >= a[left])left++;// 将找到的元素值赋给第right个元素a[right] = a[left];}// 找到第left个元素的位置并插入a[left] = pivot;return left;}// 打印数组public static void printArray(int a[]){for (int i = 0; i < a.length; i++){System.out.println(a[i]);}}public static void main(String[] args){// 定义初始化数组int a[] ={ 4, 3, 6, 7, 33, 15, 90, 65 };// 进行快速排序quickSort(a, 0, a.length - 1);// 打印数组printArray(a);}}

0 0
原创粉丝点击