package quickSort;

public class QuickSort {

private static int count;

/**

* 测试

* @param args

*/

public static void main(String[] args) {

int[] num = {3,45,78,64,52,11,64,55,99,11,18};

System.out.println(arrayToString(num,"未排序"));

QuickSort(num,0,num.length-1);

System.out.println(arrayToString(num,"排序"));

System.out.println("数组个数:"+num.length);

System.out.println("循环次数:"+count);

}

/**

* 快速排序

* @param num排序的数组

* @param left数组的前针

* @param right 数组后针

*/

private static void QuickSort(int[] num, int left, int right) {

//如果left等于right,即数组只有一个元素,直接返回

if(left>=right) {

return;

}

//设置最左边的元素为基准值

int key=num[left];

//数组中比key小的放在左边,比key大的放在右边,key值下标为i

int i=left;

int j=right;

while(i

//j向左移,直到遇到比key小的值

while(num[j]>=key && i

j--;

}

//i向右移,直到遇到比key大的值

while(num[i]<=key && i

i++;

}

//i和j指向的元素交换

if(i

int temp=num[i];

num[i]=num[j];

num[j]=temp;

}

}

num[left]=num[i];

num[i]=key;

count++;

QuickSort(num,left,i-1);

QuickSort(num,i+1,right);

}

/**

* 将一个int类型数组转化为字符串

* @param arr

* @param flag

* @return

*/

private static String arrayToString(int[] arr,String flag) {

String str = "数组为("+flag+"):";

for(int a : arr) {

str += a + "\t";

}

return str;

}

java中位数_JAVA中位数排序相关推荐

  1. 希尔排序java写法_java高级排序之希尔排序

    希尔排序对于多达几千个数据项的,中等大小规模的数组排序表现良好,希尔排序不像快速排序和其它时间复杂度为o(n*logn)的排序算法那么快,因此,对非常大的文件排序,它不是最优选择,但是希尔排序比选择排 ...

  2. java中位数_java 计算中位数方法

    最近工作需要 要求把python的代码写成java版本,python中有一个np.median()求中位数的方法,java决定手写一个 先说说什么是中位数: 中位数就是中间的那个数, 如果一个集合是奇 ...

  3. java中求中位数_java 计算中位数的实现方法

    最近工作需要 要求把python的代码写成java版本,python中有一个np.median()求中位数的方法,java决定手写一个 先说说什么是中位数: 中位数就是中间的那个数, 如果一个集合是奇 ...

  4. 希尔排序基础java代码_java 算法之希尔排序详解及实现代码

    摘要:这篇Java开发技术栏目下的"java 算法之希尔排序详解及实现代码",介绍的技术点是"希尔排序详解.实现代码.希尔排序.Java.实现.代码",希望对大 ...

  5. java解码_Java数组已排序解码

    java解码 排序是我们在计算机科学中学习的第一个算法. 排序是一个非常有趣的领域,它有大约20多种算法,而且总是很难确定哪种算法最好. 排序算法的效率是根据占用的时间和所需的空间来衡量的. 一些时间 ...

  6. java集合根据值排序_Java 8:对集合中的值进行排序

    java集合根据值排序 意识到Java 8将在接下来的几周内发布其GA版本之后,我认为现在是时候来看看它了,在过去的一周里,我一直在阅读Venkat Subramaniam的书 . 我要讲的是第3章, ...

  7. java冒泡排序_Java专题(二):Java中常见的排序算法有哪些?---冒泡排序

    排序相关的的基本概念排序: 将一组杂乱无章的数据按一定的规律顺次排列起来. 数据表( data list): 它是待排序数据对象的有限集合. 排序码(key):通常数据对象有多个属性域,即多个数据成员 ...

  8. java map按照key排序_java Map排序(按key和按value)

    1.按照key排序 对于java中Map的排序,有排序Map,比如TreeMap,对于这个Map,首先只能按照键排序,其次再put和remove的时候由于需要排序,性能上会有所牺牲. 这种方案,使用h ...

  9. BFPRT 算法 (TOP-K 问题)——本质就是在利用分组中位数的中位数来找到较快排更合适的pivot元素...

    先说快排最坏情况下的时间复杂度为n^2. 正常情况: 最坏的情况下,待排序的记录序列正序或逆序,每次划分只能得到一个比上一次划分少一个记录的子序列,(另一个子序列为空).此时,必须经过n-1次递归调用 ...

最新文章

  1. 每天一个linux命令(20):find命令之exec
  2. SCNCHECKPOINT
  3. Django REST framework+Vue 打造生鲜超市(六)
  4. Flutter之运行提示Could not update files on device: Connection closed before full header was received
  5. torchtext 各种数据集加载
  6. python如何保存计算数据_python如何将客户的数据一直保存
  7. Audio播放流程(二)---NuPlayer流程之setDataSource
  8. 计算机课用什么做课件,电脑做ppt用什么软件
  9. 中国游戏2022趋势报告:6大潜力领域4大发展趋势 多家企业分析
  10. 软考中级软件设计师教程(第5版)知识点笔记第一章计算机系统知识持续更新中...
  11. GP数据库-Creenplum
  12. 推荐几个在线SQL编程的网站,良心!
  13. 动手学TCP——CS144实验感想
  14. 西门子scl语言和c语言,在西门子PLC中使用SCL语言编程的技巧
  15. python软件操作步骤_python+pywinauto C/S架构软件基本操作
  16. 【公众号】JAVA微信公众号技术大佬文章精选
  17. Android中添加商品的购物车
  18. pyecharts官网
  19. Pycharm中怎么给字典中的多个键-值对同时加上单引号
  20. 一张图助你快速记忆CSS所有属性

热门文章

  1. 混淆矩阵(confusion matrix)是什么?以及能从混淆矩阵中衍生出来的指标FPR、TPR、FDR、ACC、PPV、NPV分别是什么?对应的概念及公式是什么?
  2. pip国内常用源及配置方式
  3. python读写二进制文件(读写字节数据)
  4. 密度聚类、密度聚类过程、OPTICS算法
  5. 实体识别+entity resolution
  6. java生成sql语句_java生成SQL语句
  7. 记忆网络RNN、LSTM与GRU
  8. Dev-Cpp\MinGW64\x86_64-w64-mingw32\include
  9. python 调用函数内部参数
  10. 如何改变anaconda 的 gcc 版本?