博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
几种排序算法之快速排序
阅读量:5111 次
发布时间:2019-06-13

本文共 1041 字,大约阅读时间需要 3 分钟。

看了很多教程,全都是垃圾,骗子!!!点开一看几十万的浏览量,结果代码和思路全是错的,错的你说nsnmn?

快速排序:

这个人写的还可以,就看这个就行了,别的大多是是假的。

原理:

(1)  我们从待排序的记录序列中选取一个记录(通常第一个)作为基准元素(称为key)key=arr[left],然后设置两个变量,left指向数列的最左部,right指向数据的最右部。

(2)  key首先与arr[right]进行比较,如果arr[right]<key,则arr[left]=arr[right]将这个比key小的数放到左边去,如果arr[right]>key则我们只需要将right--,right--之后,再拿arr[right]与key进行比较,直到arr[right]<key交换元素为止。

(3)  如果右边存在arr[right]<key的情况,将arr[left]=arr[right],接下来,将转向left端,拿arr[left ]与key进行比较,如果arr[left]>key,则将arr[right]=arr[left],如果arr[left]<key,则只需要将left++,然后再进行arr[left]与key的比较。

(4)  然后再移动right重复上述步骤

(5)  最后得到 {23 58 13 10 57 62} 65 {106 78 95 85},再对左子数列与右子数列进行同样的操作。最终得到一个有序的数列。

 

1 package Sort;  2 import java.util.Arrays;  3   4 public class Quicksort {  5       6     public static void quickSort(int [] arr,int left,int right) {  7   8           int pivot=0;  9  10           if(left
=key) { 22 right--; 23 } 24 arr[left]=arr[right]; 25 26 while(left

 

转载于:https://www.cnblogs.com/wangyufeiaichiyu/p/10944022.html

你可能感兴趣的文章
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
python常用函数
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
【工具相关】iOS-Reveal的使用
查看>>
数据库3
查看>>
存储分类
查看>>
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Yii2 Lesson - 03 Forms in Yii
查看>>
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>