快速排序代码实现
来源:互联网 发布:手机格式化后数据恢复 编辑:程序博客网 时间:2024/05/22 18:09
public static int getFristIndex(int[] arr,int frist,int end){int i = frist;int j = end;while(i<j){while(i<j && arr[i]<=arr[j])j--;if(i<j){int temp= arr[i];arr[i] = arr[j];arr[j] = temp;i++;}while(i<j && arr[i]<=arr[j])i++;if(i<j){int temp= arr[i];arr[i] = arr[j];arr[j] = temp;j--;}}return i;}public static int[] quickSort(int[] arr,int first,int end){if(first<end){int middle = getFristIndex(arr, first, end);quickSort(arr, first, middle-1);quickSort(arr, middle+1, end);}return arr;}一般分如下步骤:
1)选择一个枢纽元素(有很对选法,我的实现里采用去中间元素的简单方法)
2)使用该枢纽元素分割数组,使得比该元素小的元素在它的左边,比它大的在右边。并把枢纽元素放在合适的位置。
3)根据枢纽元素最后确定的位置,把数组分成三部分,左边的,右边的,枢纽元素自己,对左边的,右边的分别递归调用快速排序算法即可。
快速排序的核心在于分割算法,也可以说是最有技巧的部分。
0 0
- 快速排序 代码实现
- 快速排序代码实现
- 快速排序代码实现
- 快速排序代码实现
- 快速排序实现代码
- 快速排序代码实现
- 快速排序及代码实现
- 快速排序其他实现代码
- 快速排序算法代码实现
- C++代码实现快速排序
- 快速排序C++代码实现
- 快速排序--Java实现代码
- Java 快速排序 代码实现
- 快速排序及代码实现
- java代码实现快速排序
- 快速排序-JS代码实现
- 快速排序的实现--代码
- C#代码实现 快速排序
- CentOS配置163 YUM源
- leetcode - Search Insert Position
- 2442: [Usaco2011 Open]修剪草坪
- 开始学习web安全 & 搭建 Damn Vulnerable Web App 渗透测试平台
- 编写ant:build.xml的方法
- 快速排序代码实现
- 一个长整数串去除m位使其最大
- Spring-配置文件Bean定义中parent属性详解
- OCP 1Z0 051 158
- 二分查找法
- 冒泡排序(转载等 要注明出处,谢谢!)
- java在指定路径下查找所有文件及其子文件名中,是否包含指定查询的关键字
- 加密与解密_Playfair密码变种加密方法-解题思路及过程
- 邮件正文及其附件的发送的C++实现