快速排序法 quickSort---java
时间:2022-07-25
本文章向大家介绍快速排序法 quickSort---java,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
快速排序法:
public class Main {
public static void main(String[] args) {
int a[]={7,8,1,3,5};
new Main(a);
}
public Main(int[] a){
System.out.println("排序前:");
print(a);
quickSort(a,0,a.length-1);
System.out.println();
System.out.println("排序后:");
print(a);
}
public int getMiddle(int[] list,int low,int high){
int temp=list[low];//数组的第一个作为中轴
while(low<high){
while(low < high && list[high]>=temp) high--;
list[low]=list[high];//比中轴小的数移到低端
while(low < high && list[low]<=temp) low++;
list[high]=list[low];//比中轴大的移动到高端
}
list[low]=temp;//中轴记录到为尾
// System.out.println("low==high? "+(low==high)+"low= "+low+"high= "+high);
return low;//返回中轴位置
//判断得知,最后三个中轴为3 2 0
}
public void quickSort(int a[],int low,int high){
if(low<high){
int middle=getMiddle(a, low, high);//将数组a一分为二
quickSort(a, low, middle-1);//对小于中轴的部分递归排序
quickSort(a, middle+1, high);//对大于中轴的部分递归排序
}
}
void print(int []a){
for(int s: a)
System.out.print(s+" , ");
}
}
本算法应做到信手拈来。
- 牛顿迭代法(Newton's Method)
- 最长递减子序列(nlogn)(个人模版)
- Selenium2+python自动化26-js处理内嵌div滚动条
- Selenium2+python自动化25-js处理日历控件
- 转负二进制(个人模版)
- Selenium2+python自动化24-js处理富文本
- 【干货】对抗自编码器PyTorch手把手实战系列——PyTorch实现对抗自编码器
- Selenium2+python自动化23-富文本(自动发帖)
- 2-Sat+输出可行解(个人模版)
- 协同过滤原理及Python实现
- 每周学点大数据 | No.25二叉搜索树回顾(二)
- RBF神经网络及Python实现(附源码)
- 【干货】计算机视觉实战系列03——用Python做图像处理
- Adaboost从原理到实现(Python)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 技术角 | 在CentOS 8上使用Elastic Stack: Elasticsearch/Kibana 7.8部署与认证配置
- 技术角 | 解决ES SQL命令行启动报错 ./x-pack-env: No such file or directory
- Linux常用命令归类总结
- 潜藏在PHP安全的边缘——浅谈PHP反序列化漏洞
- 对比MySQL,学会在Pandas中实现SQL的常用操作
- 【Python基础】科学计算库Scipy简易入门
- 【DL】规范化:你确定了解我吗?
- Python|让代码替你“说话”
- Markdown笔记Ⅰ
- 再见,AOP,怀恋和你在一起的日子!
- Markdown笔记Ⅱ
- 使用 Ink!开发 Substrate ERC20 智能合约
- Python|Numpy的常用操作
- 提速72倍,在Python里面调用Golang函数
- JUC学习之基础