Java快速排序
2021/11/18 17:10:29
本文主要是介绍Java快速排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java快速排序
/** * 快速排序 * * @author yl */ public class QuickSort { public static void main(String[] args) { int[] array = {7, 6, 9, 3, 1, 5, 2, 4}; System.out.println(Arrays.toString(quickSort(array,0,array.length-1))); } /** * 快速排序算法 * 参考:https://blog.csdn.net/morewindows/article/details/6684558、https://blog.csdn.net/shujuelin/article/details/82423852 * @param array * @param left * @param right * @return */ public static int[] quickSort(int[] array,int left,int right) { if (left>right){ return array; } // 将第一个数作为基准数 int baseNum = array[left]; // 左边数的下标 int leftIndex=left; // 右边数的下标 int rightIndex=right; while (leftIndex < rightIndex) { // 从右边开始找第一个小于基准数的数的下标 while (leftIndex < rightIndex && array[rightIndex] >= baseNum) { rightIndex--; } // 从左边开始找第一个大于基准数的数的下标 while (leftIndex < rightIndex && array[leftIndex] <= baseNum) { leftIndex++; } // 将找到的数左右互换 if (leftIndex<rightIndex){ int temp=array[leftIndex]; array[leftIndex]=array[rightIndex]; array[rightIndex]=temp; } } // 当左边下标等于右边下标时,将基准数和该下标对应数互换 array[left]=array[leftIndex]; array[leftIndex]=baseNum; // 递归调用 quickSort(array,left,rightIndex-1); quickSort(array,rightIndex+1,right); return array; } }
这篇关于Java快速排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-28MQ底层原理资料详解:新手入门教程
- 2024-11-28MQ项目开发资料详解:新手入门教程
- 2024-11-28MQ项目开发资料详解:入门与初级用户指南
- 2024-11-28MQ消息队列资料入门教程
- 2024-11-28MQ消息队列资料:新手入门详解
- 2024-11-28MQ消息中间件资料详解与应用教程
- 2024-11-28MQ消息中间件资料入门教程
- 2024-11-28MQ源码资料详解与入门教程
- 2024-11-28MQ源码资料入门教程
- 2024-11-28RocketMQ底层原理资料详解