快速排序简介以及代码
来源:互联网 发布:单片机psw 编辑:程序博客网 时间:2024/06/07 10:33
1.原理:
(1)首先找到一个基准(一般情况以数组最左边的元素为基准)
(2)在每一轮递归循环中不断调换左右元素,找到基准的准确位置
(3)递归循环第(1)、(2)步。知道左、右元素索引位置相同。
2.时间复杂度O (nlogn)
3.代码:
public class QuickSort{ public static int [] nums = {20, 33, 12, 4, 43434, 231, 44, 1, 1, 443, 1, 33, 2, 45,2}; public static void main(String [] args){ quickSort(0, nums.length-1); for(int i : nums) System.out.println(i); } public static void quickSort(int left, int right){ if(left >= right) return; int base = nums[left]; int l = left; int r = right; while(l < r){ while(nums[r] >= base && l < r) r--; while(nums[l] <= base && l < r) l++; if(l < r) changeArray(l , r); } nums[left] = nums[l]; nums[l] = base; quickSort(left, l-1); quickSort(l+1, right); } public static void changeArray(int l, int r){ int temp = nums[l]; nums[l] = nums[r]; nums[r] = temp; }}
阅读全文
0 0
- 快速排序简介以及代码
- 快速排序基本思想以及代码实现
- 快速排序的原理以及Java代码
- 算法--Java代码实现快速排序以及三路划分
- 快速排序算法简介
- 快速排序简介
- 快速排序简介
- 快速排序以及归并排序
- 冒泡排序以及快速排序
- 快速排序代码
- 随机化快速排序代码
- 精简代码-快速排序
- 精简代码-快速排序
- 快速排序代码
- 快速排序的代码
- 快速排序 C代码
- 快速排序代码:
- 快速排序Java代码
- This application failed to start because it could not find or load the Qt platform ...
- 穿透内网,连接动态ip,内网ip打洞-----p2p实现原理
- PAT考试乙级1014(C语言实现) 部分正确
- Fedora14 nfs配置 + tiny210 挂载nfs
- appium+python自动化实践之添加移动端logcat日志
- 快速排序简介以及代码
- 2017-11-01开发第一天
- VUE+WebPack游戏设计:欲望都市,构建类RPG游戏的开发
- 正向代理与反向代理的区别【Nginx读书笔记】
- Java语言-注解-Java中的注解是如何工作的
- 手把手教你搭建Hadoop集群搭建(centos7+Hadoop2.8.2)
- WebClient 通过get和post请求api
- 树状数组(二叉索引树)
- linux目录常用命令简单