快速排序算法思想及实现
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                快速排序算法思想及实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                簡介
快速排序是對冒泡排序的一種改進,是一種分治算法,時間復雜度為O(nlogn)
基本思想
Java實現代碼
import java.util.Arrays;public class Main {public static void main(String[] args){//測試數據int[] nums = new int[10];for(int i=0;i<10;i++)nums[i] = (int)(Math.random()*100);System.out.println("原數組:");Arrays.stream(nums).forEach(num->{System.out.print(num+" ");});quickSort(nums, 0, nums.length-1);System.out.println("\n排序結果:");Arrays.stream(nums).forEach(num->{System.out.print(num+" ");});}public static void quickSort(int[] nums, int low, int high){if(low<high){//以第一個數為基準數,將大于基準數的數放于基準數右側,小于的則放于左側int middle = Qsort(nums, low, high);//對排序后的左部分排序quickSort(nums, low, middle-1);//對排序后的右部分排序quickSort(nums, middle+1, high);}}public static int Qsort(int[] nums, int low, int high){/*** 單次排序* 步驟:* 1.從右往左找出第一個比基準數小的數* 2.從左往右找出第一個比基準數大的數* 3.重復以上,直到low>high*/int middle = nums[low];while(low<high){//從右往左找出第一個比基準數小的數while(low<high&&nums[high]>middle)high--;nums[low] = nums[high];//從左往右找出第一個比基準數大的數while(low<high&&nums[low]<=middle)low++;nums[high]=nums[low];}nums[low] = middle;//返回基準數的索引return low;} }參考
- 快速排序 —— 菜鳥教程
總結
以上是生活随笔為你收集整理的快速排序算法思想及实现的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 热门手机排行榜前十名2022(最火手机排
- 下一篇: 优酷电脑免更新版(优酷电脑版旧版)
