算法(2.5 应用)
来源:互联网 发布:王牌特工特工学院淘宝 编辑:程序博客网 时间:2024/06/05 14:33
这一章讲排序中的基本应用
找到一组数中的第K小元素 (就是找到排序中的索引)
利用快速排序来完成
public static Integer select(Integer[] a, int k){if (k > a.length-1){return null;}int lo = 0;int hi = a.length - 1;while (hi > lo){int j = partition(a, lo, hi);if (j == k){System.out.println(a[j]);return a[j];}else if (j > k){hi = j - 1;}else{lo = j + 1;}}System.out.println(a[k]);return a[k];}private static int partition(Comparable[] a, int lo, int hi){//将数组切分为a[lo..i-1], a[i], a[i+1..hi]int i = lo, j = hi + 1; //左右扫描指针Comparable v = a[lo]; //切分元素while (true){//扫描左右,检查扫描是否结束并交换元素while (less(a[++i], v)){if (i == hi){break;}}while (less(v, a[--j])){if (j == lo){break;}}if (i >= j){break;}exch(a, i, j);}exch(a, lo, j);//将v = a[j]放入正确的位置return j;//a[lo..j-1] <= a[j] <= a[j+1..hi] 达成}private static boolean less(Comparable v, Comparable w){return v.compareTo(w) < 0;}private static void exch(Comparable[] a, int i, int j){Comparable t = a[i];a[i] = a[j];a[j] = t;}
阅读全文
0 0
- 算法(2.5 应用)
- 《算法》笔记-2.5 应用
- 【算法】算法的应用(一)
- 【算法】算法的应用(二)
- 【算法】算法的应用(三)
- kosaraju算法应用(一)
- 算法应用
- 算法应用
- 动态规划(DP)算法及其应用
- Hash算法系列-应用(查找)
- Hash算法系列-应用(负载均衡)
- Hash算法系列-应用(加密)
- EM算法及其应用(代码)
- EM算法及其应用(代码)
- 数据结构、算法与应用--习题(1)
- UVA 10048 - Audiophobia(flody算法应用)
- hdu 3336(KMP算法的应用)
- 数据结构,算法与应用(1)
- 高斯消元求方案数-HDU3364
- [版本控制]如何在GitHub上下载自己喜欢的开源代码并提交修改
- MySql 对性能产生影响的条件
- 构造方法
- Intellij idea破解办法
- 算法(2.5 应用)
- SSM整合,spring-mybatis配置,service,controller配置
- 机器学习实战——K-近邻算法【2:改进约会网站配对效果】
- springmvc注解时对象为null
- jsp多终端自适应登录页面,提交验证无刷新
- 如何用 Razor 语法把枚举对象的值变为 Radiobutton 列表形式
- 10分钟快速入门Redis
- MySQL 影响SQL查询速度
- 越狱开发学习笔记