快速排序实现-JAVA

简介: 快速排序

快速排序;

public class QuickSort {

public static void exchange(int [] arr, int i, int j)
{
    int temp;
    temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
}

public static void sort(int [] arr , int low , int high)
{
    int i,j,temp;
    i = low;
    j = high;
    
    if(i > j){
        return;
    }
    
    temp = arr[low];
    boolean flag = true;
    
    while( i < j ){
        if(flag){
            if(arr[j] < temp){
                exchange(arr, i, j);
                flag = false;
            }else{
                j --;
            }
        }else{
            if(arr[i] > temp){
                exchange(arr, i, j);
                flag = true;
            }else{
                i ++;
            }
        }
    }
    
    sort(arr,low,i-1);
    sort(arr,j+1,high);
}



public static void main(String[] args) {
    int [] arr = {1,2,6,3,7,8,1,9,1};
    sort(arr, 0, arr.length-1);
    
    for (int i : arr) {
        System.out.print(i+" ");
    }
}

}

目录
相关文章
|
5月前
|
搜索推荐 Java 索引
|
7月前
|
搜索推荐 算法 Java
Java中的快速排序、归并排序和堆排序是常见的排序算法。
【6月更文挑战第21天】Java中的快速排序、归并排序和堆排序是常见的排序算法。快速排序采用分治,以基准元素划分数组并递归排序;归并排序同样分治,先分割再合并有序子数组;堆排序通过构建堆来排序,保持堆性质并交换堆顶元素。每种算法各有优劣:快排平均高效,最坏O(n²);归并稳定O(n log n)但需额外空间;堆排序O(n log n)且原地排序,但不稳定。
54 3
|
7月前
|
Java
快速排序(java)
快速排序(java)
|
7月前
|
Java
快速排序-Java版本
快速排序-Java版本
34 0
|
8月前
|
算法 Java
<八大排序>万字详解(Java实现).插入排序、希尔排序、堆排序、快速排序、归并排序、计数排序...
<八大排序>万字详解(Java实现).插入排序、希尔排序、堆排序、快速排序、归并排序、计数排序
37 0
|
8月前
|
搜索推荐 Java
Java基础(快速排序算法)
Java基础(快速排序算法)
47 4
|
8月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--快速排序
数据结构与算法(Java篇)笔记--快速排序
|
8月前
|
搜索推荐 算法 Java
Java实现快速排序
Java实现快速排序
40 0
|
8月前
|
搜索推荐 Java
java实现冒泡排序和快速排序代码
java实现冒泡排序和快速排序
60 1
|
8月前
|
Java C++
快速排序(c++,java)
快速排序(c++,java)
35 0