快排作为最常用的排序算法,他主要是以一个数为基准数,将数组中的其他数按一定的顺序放入两边。以从小到大排序为例,快排的操作就是将比基准数小的都放到它的左边,比基准数大的都放到它的右边,然后左右两边再分别重复这个操作,不停地分,直至分到每一个分区的基准数的左边或者右边都只剩一个数为止。这时这组数组的排序也就完成了。主要采用的是分治的思想。

import java.util.Scanner;
public class Quick_Sort {public static void main(String[] args){int[] arr = new int[30];Scanner sc = new Scanner(System.in);for(int i =0;i<arr.length;i++){arr[i] = sc.nextInt();}for(int i =0;i<arr.length;i++){System.out.print(arr[i]+" ");}quickSort(arr,0,arr.length-1);System.out.println("\n排序后数组如下:");for(int i =0;i<arr.length;i++){System.out.print(arr[i]+" ");}}public static void quickSort(int arr[], int left, int right){if(left > right)return;int tmp = arr[left]; //基准值(一般为首个)int i = left;int j = right;while(i != j){ //当i与j 相遇时,循环结束while(arr[j] >= tmp && j > i) //先从右边向左走,如果遇到小于基准值的数,则j不动j--;while(arr[i] <= tmp && j > i) //i向前走,遇到大于基准值的数,i不动i++;if(j > i){ //当i与j都找到相应的数后,i与j指向的数值互换int t = arr[i];arr[i] = arr[j];arr[j] = t;}}/*当i=j时,说明i与j相遇* 此时将a[i]与一开始定义的基准值交换* 从而保证了 基准值的右边都比基准值大,左边都比基准值小* */arr[left] = arr[i];arr[i] = tmp;quickSort(arr, left, i-1);//对左边进行排序quickSort(arr, i+1, right);//右边}}

运行截图

快排——Java实现快速排序代码相关推荐

  1. 快排Java代码实现(Quick Sort)

    1.  快排算法思路 基本思想:通过一趟快速排序将待排数组分割成独立的两份部分; 其中一部分数组的值均比另一部分数组的值小,则可分别对着两部分数组继续进行排序,以达到整个序列有序. 快排的平均时间复杂 ...

  2. 快排--java实现

    快速排序思想 快速排序的思想,寻找一个轴位,比这个轴小的放到左边,比这个轴大的放到右边,然后分别再对两边进行如此的方法即可得到排序的数组. 这样说起来晦涩难懂,我们举个例子来实现. 例如数组:{13, ...

  3. java三路快排,java二路快排很慢

    老师,以下是我二路快排的java代码 public class quickSortTwoway { public quickSortTwoway() {}; public static void qu ...

  4. 快排java实现图文解释

    先上代码: /******************************************************* *快速排序 (比较排序类) *每次排序将待排记录分割两部分,一部分都比关键 ...

  5. python写快排_python 实现快速排序

    Python排序算法之快速排序 快速排序(quickSort) 快排的思想:首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这 ...

  6. python模拟seo快排vps点击代码实操

    本期主要是介绍一下利用vps拨号的方法去运行用户点击行为,俗称seo模拟快排,那么顾名思义,快排的运行方式需要在一台拨号服务器上进行,本次模拟快排的代码是采用python中的pyppeteer库,这个 ...

  7. java快排原理_快速排序原理及实现(java)

    高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是"快速排序"啦!光听这个名字是不是就觉得很高端呢. 假设我们现在对"6 1 2 7 9 3 4 5 1 ...

  8. java快排(java快排函数)

    java培训机构排名动力节点排第几? 没有排名,在我心里他是第一,现在都做了10年了,我15年就毕业了,一转眼过去四年了,学校的课程还是跟以前一样每隔一段时间就更新,这段时间的架构师课程对我帮助就很大 ...

  9. js快排(JavaScript快速排序算法)- 前端面试

    快速排序算法通过多次比较和交换来实现排序,其排序流程如下: (1) 首先设定一个分界值,通过该分界值将数组分成左右两部分. (2) 将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的 ...

最新文章

  1. Kubernetes — PV、PVC
  2. ANSYS Motion 2020 R2中文版
  3. 【职场】你做程序员,真的是因为热爱吗?
  4. 儿童吹泡泡水简单配方_儿童吹泡泡玩具水怎么制作
  5. Windows Home Server 常见问题
  6. 【干货】神经网络SRU
  7. C# 异步TCP Socket聊天室(1服务器,N客户端)
  8. 百度手机输入法,如何使用五笔98版?
  9. 灰色按钮激活程序的原理 (学习)
  10. BeanUtils与PropertyUtils区别
  11. AE Dulik骨骼绑定脚本!
  12. 极力推荐收藏的几个高清免费图片素材网站
  13. 探究ESP32S【第六天】——接入米家(插曲)
  14. mysql加减时间-函数-时间加减
  15. L1-068 调和平均 (10分)
  16. uniapp 点击动画_uni-app 点击元素左右抖动效果
  17. 危化园区信息化管理平台(附方案+源码)
  18. Typroa导出HTML带大纲
  19. https证书一年多少钱?
  20. 明日之后android和ios,明日之后安卓苹果互通吗

热门文章

  1. E8.BPM企业流程管理系统,提升企业执行力
  2. Linux下开启SFTP服务
  3. MATLAB混合编程
  4. 基于Keras搭建LSTM网络实现文本情感分类
  5. 未来写软件,就像现在画PPT
  6. 网站降权剖析、恢复思路
  7. ng-zorro select 下拉框
  8. 有影响的10位计算机人物
  9. [广度优先搜索]python实现
  10. 尊重他人劳动成果是最起码的道德!!!