快排(java实现)
在下边工具类MyArrays中
思路:
import java.util.Arrays;
public class MyArray {
public static double getMax(double[] arr) {
double max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (max < arr[i]) {
double temp = max;
max = arr[i];
arr[i] = temp;
}
}
return max;
}
public static double getMin(double[] arr) {double min = arr[0];for (int i = 1; i < arr.length; i++) {if (min > arr[i]) {double temp = min;min = arr[i];arr[i] = temp;}}return min;
}public static double getLength(double[] arr) {return arr.length;
}// 快速排序
public static void sort(double[] arr) {quickSort(arr,0,arr.length);
}// 一趟
public static int adjustArray(double[] arr, int s, int l) {int i = s, j = l - 1;double temp = arr[i];while (i < j) {// 由左向右查找小于temp的数while (i < j && arr[j] >= temp) {j--;}if (i < j) {arr[i] = arr[j];i++;}while (i < j && arr[i] <= temp) {i++;}if (i < j) {arr[j] = arr[i];j--;}}arr[i] = temp;System.out.println(i);return i;
}// 分治,递归调用
public static void quickSort(double[] arr, int s, int l) {if (l - s > 0) {int i = adjustArray(arr, s, l);quickSort(arr, i + 1, l);quickSort(arr, s, i);}
}public static void print(double[] arr) {System.out.println(Arrays.toString(arr));
}public MyArray() {// TODO Auto-generated constructor stub
}public static void main(String[] args) {// TODO Auto-generated method stubdouble[] arr = { 1, 2, 5, 3, 6, 3, 2, 5 };/*System.out.println(getMax(arr));System.out.println(getMin(arr));*/sort(arr);print(arr);
}
}
ps:本人java小白,望路过大佬指点
快排(java实现)相关推荐
- 快排--java实现
快速排序思想 快速排序的思想,寻找一个轴位,比这个轴小的放到左边,比这个轴大的放到右边,然后分别再对两边进行如此的方法即可得到排序的数组. 这样说起来晦涩难懂,我们举个例子来实现. 例如数组:{13, ...
- java三路快排,java二路快排很慢
老师,以下是我二路快排的java代码 public class quickSortTwoway { public quickSortTwoway() {}; public static void qu ...
- 快排Java代码实现(Quick Sort)
1. 快排算法思路 基本思想:通过一趟快速排序将待排数组分割成独立的两份部分; 其中一部分数组的值均比另一部分数组的值小,则可分别对着两部分数组继续进行排序,以达到整个序列有序. 快排的平均时间复杂 ...
- 快排——Java实现快速排序代码
快排作为最常用的排序算法,他主要是以一个数为基准数,将数组中的其他数按一定的顺序放入两边.以从小到大排序为例,快排的操作就是将比基准数小的都放到它的左边,比基准数大的都放到它的右边,然后左右两边再分别 ...
- 快排java实现图文解释
先上代码: /******************************************************* *快速排序 (比较排序类) *每次排序将待排记录分割两部分,一部分都比关键 ...
- java快排(java快排函数)
java培训机构排名动力节点排第几? 没有排名,在我心里他是第一,现在都做了10年了,我15年就毕业了,一转眼过去四年了,学校的课程还是跟以前一样每隔一段时间就更新,这段时间的架构师课程对我帮助就很大 ...
- java8 快排_Java 8快多少?
java8 快排 Java SE 8已于昨天发布 . 传统上,每个新的主要JRE版本都提供免费的性能提升. 我们还能再获得免费午餐吗? 这次收益有多大? 让我们对其进行基准测试. 基准方法 使用3个不 ...
- java快排算法解读,java 快排的思路与算法
java 快排的思路与算法 有时候面试的时候的会问道Arrays.sort()是怎么实现的,我以前根本不知道是什么东西,最近点进去看了一下.直接吓傻, //看到这个时候还是比较淡定的,可怕的事情来了. ...
- java 快排_八大排序-快速排序(搞定面试之手写快排)
概要 快速排序由C. A. R. Hoare在1960年提出,是八大排序算法中最常用的经典排序算法之一.其广泛应用的主要原因是高效,核心算法思想是分而治之.快速排序经常会被作为面试题进行考察,通常的考 ...
- java 快排和堆排序
1. 这段时间准备找工作了,所以就从最简单的排序开始看看(以下是java实现的快速排序和堆排序): 注:快排和堆排序都是根据二叉树的原理来加快排序速度的... 快排: public static v ...
最新文章
- python复习冒泡排序
- 下列哪个可以选中矩形文字块_PPT很难?一个字母就可以搞定
- 减速电机JGA25-370的控制电路
- 每日一皮:这个食堂好...
- 来自NASA的全球高程DEM数据
- 三大独家优势赢得关注 神策数据成功签约借贷宝
- 最长无重复字符子串?
- Linux 时间函数的使用
- C++工作笔记-VS中“调用堆栈”窗口的使用,实现越界的快速定位
- Linux学习笔记---移植官方uboot步骤(二)
- eclipse找不到arm-linux-gcc,使用 Eclipse 和 ARM GCC 搭建 STM32 开发环境
- Android studio中的一次编译报错’Error:Execution failed for task ':app:transformClassesWithDexForDebug‘,困扰了两天
- 【Android工具】更新Yandex有道云笔记网页剪辑插件测试正常!可以安装PCchrome插件的手机浏览器!...
- RS-485接口详解
- String转成JSON或String转为list后转为JSON或String转为map后转为JSON
- android刷机恢复出厂设置吗,安卓手机恢复出厂设置和双清有什么区别?
- mmdetection训练记录
- 个人站长常用的4款网站统计工具
- 织梦服务器有什么文件,对于织梦CMS各目录内文件的说明详解
- Linux 下分区表的备份与恢复