排序算法--快速排序
生活随笔
收集整理的這篇文章主要介紹了
排序算法--快速排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ?快速排序:快速排序(Quicksort)是對冒泡排序的一種改進。它的基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。
在這里我給大家提供個網站?http://www.atool.org/sort.php,是關于各種排序算法演示過程的。好了,不多贅述,直接上代碼。
方法一
1 package com.feimao.com.feimao.a2.test; 2 3 import java.util.Arrays; 4 5 public class QuickSort { 6 public static void quickSort(int arr[], int start, int end) { 7 if (start < end) { 8 int stard = arr[start];//把數組中的第0個數字作為基準 9 int low = start; 10 int high = end;//記錄排序下標 11 while (low < high) {//循環找出比標準數大的數字比標準數小的數 12 while (low < high && stard <= arr[high]) {//右邊的數比標準數大 13 high--; 14 } 15 arr[low] = arr[high];//使右邊的數字替換左邊的數字 16 while (low < high && arr[low] <= stard) {//如果左邊的數字比標準數小 17 low++; 18 } 19 arr[high] = arr[low]; 20 } 21 arr[low] = stard;//把標準數賦值給低所在的元素 22 quickSort(arr, start, high - 1);//處理所有小的數字 23 quickSort(arr, high + 1, end);//處理所有大的數字 24 25 } 26 } 27 28 public static void main(String[] args) { 29 int arr[] = {3, 4, 6, 7, 2, 7, 2, 8, 0}; 30 quickSort(arr, 0, arr.length - 1); 31 System.out.println(Arrays.toString(arr)); 32 33 } 34 }方法二
1 public class QuickSort { 2 public static void quickSort(int[] arr,int low,int high){ 3 int i,j,temp,t; 4 if(low>high){ 5 return; 6 } 7 i=low; 8 j=high; 9 //temp就是基準位 10 temp = arr[low]; 11 12 while (i<j) { 13 //先看右邊,依次往左遞減 14 while (temp<=arr[j]&&i<j) { 15 j--; 16 } 17 //再看左邊,依次往右遞增 18 while (temp>=arr[i]&&i<j) { 19 i++; 20 } 21 //如果滿足條件則交換 22 if (i<j) { 23 t = arr[j]; 24 arr[j] = arr[i]; 25 arr[i] = t; 26 } 27 28 } 29 //最后將基準為與i和j相等位置的數字交換 30 arr[low] = arr[i]; 31 arr[i] = temp; 32 //遞歸調用左半數組 33 quickSort(arr, low, j-1); 34 //遞歸調用右半數組 35 quickSort(arr, j+1, high); 36 } 37 38 39 public static void main(String[] args){ 40 int[] arr = {3 , 4 , 6 , 7 , 2 , 7 , 2 , 8 , 0}; 41 quickSort(arr, 0, arr.length-1); 42 for (int i = 0; i < arr.length; i++) { 43 System.out.println(arr[i]); 44 } 45 } 46 }?
轉載于:https://www.cnblogs.com/feimaoyuzhubaobao/p/10140904.html
總結
以上是生活随笔為你收集整理的排序算法--快速排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客网——日志排序
- 下一篇: Chrome 静默打印及其它启动参数