Java 实现的快速排序
来源:互联网 发布:我的网络研修总结模板 编辑:程序博客网 时间:2024/05/22 12:39
一、快排介绍
不懂基本原理的可以看一下百度百科-快速排序。有两种实现方式,一种是使用partition函数;另外就是普通的
二、Java 代码
//使用partition方法public void quickSort(int[] nums, int low, int high){if (nums==null || nums.length==0 || low > high) {return ;}int idx = partition(nums, low, high, low);quickSort(nums, low, idx-1);quickSort(nums, idx+1, high);}public int partition(int[] nums, int low, int high, int pivotIdx){int pivot = nums[pivotIdx];swap(nums, pivotIdx, high);int startIdx = low;for (int i = low; i < high; i++) {if (nums[i]<pivot) {swap(nums, i, startIdx);startIdx++;}}swap(nums, startIdx, high);return startIdx;}private void swap(int[] nums, int a, int b){int tmp = nums[a];nums[a] = nums[b];nums[b] = tmp;}//一般快排public void quickSort2(int[] arr, int left, int right) { if (left >= right) { return; } int low = left; int high = right; int key = arr[low]; while (low < high) { while (low < high && arr[high] >= key) high--; if (low<high) { arr[low++] = arr[high]; } while (low < high && arr[low] <= key) low++; if (low<high) { arr[high--] = arr[low];} } arr[low] = key; quickSort(arr, left, low - 1); quickSort(arr, low + 1, right); }
0 0
- 快速排序的JAVA实现
- 快速排序的Java实现
- 快速排序的java实现
- 快速排序的java实现
- 快速排序的java实现
- 快速排序Java的实现
- java实现的快速排序
- 快速排序的JAVA实现
- 快速排序的java实现
- java实现的快速排序
- 快速排序的java实现
- Java 实现的快速排序
- 快速排序的java实现
- 快速排序的java实现
- java 快速排序的实现
- 快速排序的Java实现
- 快速排序的Java实现
- 快速排序的Java实现
- 思科交换机与H3C交换机端口聚合配置
- 图像分割技术(1)
- allinone—openstack development environment
- 值得阅读的C语言开源项目代码
- 利用LSB算法隐藏图片信息的MATLAB实现
- Java 实现的快速排序
- poj1008
- 说说高斯过程回归
- Android开发艺术探索读书笔记(一)
- C安全编码--预处理
- IE浏览器开发人员工具
- meta标签中的http-equiv属性使用介绍
- 快速排序
- 一文读懂卷积神经网络