快速排序 Quick Sort
2015-07-14 14:43
585 查看
自己写的代码,记录一下。分别记录了两种partition的方法。
public class QuickSort { public static void quickSort(int[] nums, int start, int end) { if(start >= end) { return; } int pivot = partition2(nums, start, end); quickSort(nums, start, pivot - 1); quickSort(nums, pivot + 1, end); } public static int partition(int[] nums, int start, int end) { int pivot = start; for(int i = start + 1; i <= end; i++) { if(nums[i] <= nums[start]) { pivot++; int temp = nums[pivot]; nums[pivot] = nums[i]; nums[i] = temp; } } int temp = nums[pivot]; nums[pivot] = nums[start]; nums[start] = temp; return pivot; } // better partition method public static int partition2(int[] nums, int start, int end) { int pivot = start, i = start + 1, j = end; while(i < j) { while(i <= end && nums[i] <= nums[pivot]) { i++; } while(nums[j] >nums[pivot]) { j--; } if(i >= j) { break; } int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } i--; int temp = nums[i]; nums[i] = nums[pivot]; nums[pivot] = temp; return i; } public static void main(String[] args) { int[] nums = new int[]{13, 6, 9, 1, 19, -21, 5}; quickSort(nums, 0, nums.length - 1); System.out.println(nums); } }
相关文章推荐
- UI1_UITableViewHomeWork
- 1007. Maximum Subsequence Sum (25)
- Selenium学习笔记之003:Web UI自动化知识点整理
- [@Controller]3 详解@CookieValue,@PathVariable,@RequestBody,@RequestHeader,@RequestParam
- radio 通过数据库中的value值 自动获取选中状态
- AlertDialog.Builder弹出自定义Layout窗口
- MUI - 引导页制作
- Failed to deploy project. For more information, query the operation_messages view
- Splay树 + 离散化 —— HDU 3436 Queue-jumpers
- Android UI-SlidingMenu侧滑菜单效果
- 玩转Android---UI篇 ZoomControls放大缩小图片
- GUI原型设计工具Pencil
- UIalertController
- UITableView刷新问题
- UISliderControl学习记录
- MI卡UID
- 关于UGUI挡道3D的物体触发点击事件无法和3D物体分离的解决方案
- ios UIKit动力
- ios UIKit动力 分类: ios技术 2015-07-14 12:55 196人阅读 评论(0) 收藏
- IOS开发点滴---UIView转UIImage以及切割UIView