【JAVA演算法】排序演算法 -- 快速排序
import java.util.Scanner;
//快速排序
public class Main {
/**
* @param args
*/
private static int[] a;//定義的帶排序的陣列
//快速排序演算法
public static void quicksort(int s,int e){
if(s>e){
return;
}
int standard = a[s];
int Llimit = s;
int Rlimit = e;
while(Rlimit>Llimit){
for(;Rlimit>Llimit;Rlimit--){
if(a[Rlimit]<standard){
break;
}
}
for(;Rlimit>Llimit;Llimit++){
if(a[Llimit]>standard){
break;
}
}
if(Llimit < Rlimit){
int temp = a[Llimit];
a[Llimit] = a[Rlimit];
a[Rlimit] = temp;
}
}
a[s] = a[Llimit];
a[Llimit] = standard;
quicksort(s,Llimit-1);
quicksort(Rlimit+1,e);
return;
}
//輸出陣列中的所有元素
public static void printArray(){
System.out.print("排序後的陣列是: ");
for (int i : a) {
System.out.print(i+" ");
}
System.out.println();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
//接下來的兩行一行為陣列總數,第二行為陣列中所包含的元素
int N = scanner.nextInt();
a = new int[N];//申請記憶體分配
for(int i=0;i<N;i++){
a[i] = scanner.nextInt();
}
quicksort(0, N-1);
printArray();
}
}
關於演算法思想,網上有許多很形象的敘述,如https://blog.csdn.net/vayne_xiao/article/details/53508973
這裡我給出自己的JAVA實現,供大家參考。
相關文章
- 《排序演算法》——快速排序(Java)排序演算法Java
- 排序演算法-Java實現快速排序演算法排序演算法Java
- java:快速排序演算法與氣泡排序演算法Java排序演算法
- 排序演算法__快速排序排序演算法
- 排序演算法:快速排序排序演算法
- 排序演算法-快速排序排序演算法
- 排序演算法——快速排序排序演算法
- 排序演算法 - 快速排序排序演算法
- 排序演算法之 '快速排序'排序演算法
- #排序演算法#【4】快速排序排序演算法
- 【演算法】快速排序演算法排序
- 快速排序演算法排序演算法
- 演算法之常見排序演算法-氣泡排序、歸併排序、快速排序演算法排序
- 排序演算法 - 快速插入排序和希爾排序排序演算法
- 畫江湖之演算法篇【排序演算法】快速排序演算法排序
- 畫江湖之演算法篇 [排序演算法] 快速排序演算法排序
- 演算法系列(四)排序演算法中篇--歸併排序和快速排序演算法排序
- 演算法之旅:快速排序演算法排序
- 演算法之快速排序演算法排序
- 前端演算法:快速排序演算法前端演算法排序
- 排序演算法之快速排序的實現排序演算法
- Sorting 排序演算法: Quick Sort 快速排序排序演算法UI
- 看動畫學演算法之:排序-快速排序動畫演算法排序
- 經典排序演算法 - 快速排序Quick sort排序演算法UI
- Python之排序演算法:快速排序與氣泡排序Python排序演算法
- 排序演算法-Java排序演算法Java
- 三種快速排序演算法以及快速排序的優化排序演算法優化
- Java排序演算法之氣泡排序Java排序演算法
- 排序演算法:Java實現希爾排序排序演算法Java
- 快速掌握Java幾種排序演算法的區別與排序演算法的應用Java排序演算法
- 排序演算法之「快速排序(Quick Sort) _c++ 」排序演算法UIC++
- python排序演算法的實現-快速排序Python排序演算法
- 演算法 | 快速排序詳解演算法排序
- 演算法導論-快速排序演算法排序
- Python 演算法 快速排序Python演算法排序
- c#-快速排序-演算法C#排序演算法
- 二十、快速排序演算法——JAVA實現(遞迴)排序演算法Java遞迴
- java常用排序演算法Java排序演算法