日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java排序算法之--快速算法--快速上手

發布時間:2025/3/12 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java排序算法之--快速算法--快速上手 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

何為快速算法:它是冒泡排序的改進~

基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列


算法的整個處理過程如下:




核心思想:基準數不斷不斷歸位的過程(右邊大于基準數,左邊小于基準數):

當基準數為左邊第一個數時,(從右邊向左開始掃描,當掃描到小于基準數的時候,暫停掃描,此時數組下標為j

??????????????輪到左邊往右邊掃描,當掃描到大于基準數的時候,暫停掃描,此時數組下標為i,交換i與j下標的數值),繼續“()”的步驟。

????? ? 什么時候截止呢?當i=j時,將基準數base與i所指的數交換,然后不斷的迭代這個過程。

當基準數為左邊第一個數時,(從右邊向左開始掃描,當掃描到小于基準數的時候,暫停掃描,此時數組下標為j

??????????????輪到左邊往右邊掃描,當掃描到大于基準數的時候,暫停掃描,此時數組下標為i,交換i與j下標的數值),繼續“()”的步驟。

????? ? 什么時候截止呢?當i=j時,將基準數base與i所指的數交換,然后不斷的迭代這個過程。


算法實現如下:

  • public?static?void?quickSort(int?[]?a,?int?left,?int?right)?{??
  • ????int?i,?j,?t,?base;??
  • ????if?(left?>?right)??
  • ????????return;??
  • ????base?=?a[left];?// base中存的就是基準數??
  • ????i?=?left;???????// 設置左右兩個參數??
  • ????j?=?right;??
  • ????while?(i?!=?j)?{??
  • ????????//要先從右邊開始找??
  • ????????while?(a[j]?>=?base?&&?i?<?j)??
  • ????????????j--;??
  • ????????//?再找左邊的??
  • ????????while?(a[i]?<=?base?&&?i?<?j)??
  • ????????????i++;??
  • ????????//?交換兩個數在數組中的位置??
  • ????????if?(i?<?j)?{??
  • ????????????t?=?a[i];??
  • ????????????a[i]?=?a[j];??
  • ????????????a[j]?=?t;??
  • ????????}??
  • ????}??
  • ????//?最終將基準數歸位??
  • ????a[left]?=?a[i];??
  • ????a[i]?=?base;??
  • ??
  • ????quickSort(a,?left,?i?-?1);//?繼續處理左邊的,這里是一個遞歸的過程??
  • ????quickSort(a,?i?+?1,?right);//?繼續處理右邊的?,這里是一個遞歸的過程??
  • } ?
  • http://blog.csdn.net/sunhuaqiang1/article/details/52059322有時間可參考此鏈接



    總結

    以上是生活随笔為你收集整理的Java排序算法之--快速算法--快速上手的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。