图解快速排序算法

简介: 图解快速排序算法

 

文章目录

  1. 算法思想
  2. 算法图解
  3. 代码实现
  4. 快排特点及性能
  5. 算法思想

快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据要小,再按这种方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,使整个数据变成有序序列

  1. 算法图解

int[] array = {25,100,9,20,1,8};

  1. 代码实现

代码:

public class QuickSort {

private int[] array;
public QuickSort(int[] array){
    this.array = array;
}
public void sort() {
    quickSort(array,0,array.length-1);
}
public void print() {
    for (int i = 0; i < array.length; i++) {
        System.out.println(array[i]);
    }
}

public void quickSort(int[] array,int left,int right) {
    if(left<right){
        int Povit = array[left];
        int L = left;
        int R = right;
        while(L<R){
            while(L < R && array[R]>Povit){
                R--;
            }
            if(L < R) {
                array[L] = array[R];
                L++;
            }
            while(L < R && array[L] < Povit){
                L++;
            }
            if(L < R){
                array[R] = array[L];
                R--;
            }
        }
        array[R] = Povit;
        quickSort(array,left,R-1);
        quickSort(array,R+1,right);
    }
}

}

class SortTest {

public static void main(String[] args) {
    testQuickSort();
}
/**
 * 快速排序
 */
private static void testQuickSort() {
    int[] array = {25,100,9,20,1,8};
    QuickSort quickSort = new QuickSort(array);
    quickSort.sort();
    quickSort.print();
}

}

结果: 

  1. 快排特点及性能

相关文章
|
4天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之快速排序
Java数据结构与算法:排序算法之快速排序
|
2月前
|
算法 前端开发
前端算法之快速排序
前端算法之快速排序
23 0
|
10天前
|
搜索推荐 算法 Java
Java中的快速排序、归并排序和堆排序是常见的排序算法。
【6月更文挑战第21天】Java中的快速排序、归并排序和堆排序是常见的排序算法。快速排序采用分治,以基准元素划分数组并递归排序;归并排序同样分治,先分割再合并有序子数组;堆排序通过构建堆来排序,保持堆性质并交换堆顶元素。每种算法各有优劣:快排平均高效,最坏O(n²);归并稳定O(n log n)但需额外空间;堆排序O(n log n)且原地排序,但不稳定。
19 3
|
13天前
|
算法 搜索推荐 JavaScript
算法学习:快速排序
算法学习:快速排序
13 1
|
19天前
|
算法
数据结构与算法-快速排序
数据结构与算法-快速排序
9 1
|
2月前
|
存储 搜索推荐 算法
快速排序算法详解
快速排序算法详解
|
6天前
|
搜索推荐 C语言
【C/排序算法】:快速排序和归并排序的非递归实现
【C/排序算法】:快速排序和归并排序的非递归实现
8 0
|
6天前
|
机器学习/深度学习 搜索推荐 算法
【C/排序算法】:快速排序和冒泡排序
【C/排序算法】:快速排序和冒泡排序
10 0
|
14天前
|
搜索推荐
排序算法----快速排序----详解&&代码
排序算法----快速排序----详解&&代码
|
21天前
|
算法 搜索推荐 数据可视化
【漫画算法】指挥官的排序战术:快速排序算法解密
【漫画算法】指挥官的排序战术:快速排序算法解密