Java算法基础之快速排序算法详解编程语言
2023-06-13 09:20:41 时间
所谓的快速排序的思想就是,首先把数组的第一个数拿出来作为一个key,在前后分别设置一个i,j作为标识,然后拿这个数组从后面往前遍历,
及j- -,直到找到第一个小于这个key的那个数然后交换这两个值,交换完成后,我们拿着这个key要从i往后遍历了,及i++ 一直循环到i=j结束,
当结束后,我们会发现大于这个key的值都会跑到这个key的后面,小于这个key的值就会跑到这个值的前面,然后我们对这个分段的数组再进行
递归调用就可以完成这个数组的排序。
public class QuickSort{ public static void main(String[] args) { int a[] = { 6, 2, 7, 5, 8, 1, 9, 3, 4 }; quickSort(a, 0, a.length - 1); System.out.println("排序后"); for (int k = 0; k a.length; k++) { System.out.print(a[k] + " "); System.out.println(); public static void quickSort(int a[], int start, int end) { int i, j; i = start; j = end; if (a == null || a.length == 0) { return; while (i j) { while (i j a[i] = a[j]) { j--; // 右侧扫描 if (i j) { // 找出第一个比key小的 交换位置 int temp = a[j]; a[j] = a[i]; a[i] = temp; while (i j a[i] a[j]) { i++;// 左侧扫描(此时a[j]中存储着key值) if (i j) { // 找出第一个比key大的,交换位置 int temp = a[j]; a[j] = a[i]; a[i] = temp; if (i - start 1) { // 递归调用,把key前面的完成排序 quickSort(a, 0, i - 1); if (end - j 1) { quickSort(a, j + 1, end); // 递归调用,把key后面的完成排序 }
作者:blog.ytso.com
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/14277.html
cjava相关文章
- Java面试问题总结带答案(多线程)
- java List去重,并且保持顺序
- java反射菜鸟教程_Java反射
- 【算法】java 实现数组的反转
- java数组定义长度_JAVA数组的定义
- java数组排序去重_JAVA数组去重排序
- think in java一_Think in Java(一):Java基础「建议收藏」
- java冒泡排序经典代码_Java 8大经典排序算法(含源代码),必须收藏!
- java public interface_Java 接口interface的基础[通俗易懂]
- java基本数据类型 think in java_Think in Java(一):Java基础[通俗易懂]
- java 阶乘算法_Java 实现阶乘算法
- java笛卡尔积算法_Java 笛卡尔积算法的简单实现
- 【说站】java接口的定义与实现
- intellij怎么创建Java_intellij idea创建java项目
- java查找字符的方法_Java字符串查找(3种方法)
- Java--十大排序算法
- Java中final关键字(Java)
- Java 对称加密几种算法分别实现详解编程语言
- java归并排序算法代码详解编程语言
- 技巧Linux环境下提高Java编译效率的技巧(linux下java编译)
- 实现Java实现Redis集合的技术研究(redis集合java)
- 使用Java轻松读取Redis数据 – 一步一步指南!(java读取redis)
- 数据库一步一步教你Java如何恢复Oracle数据库(java恢复oracle)
- 为Java程序员准备的10分钟Perl教程