Java:高速排序算法與冒泡算法
首先看下,冒泡排序算法與高速排序算法的效率:
例如以下的是main方法:
在一個有100000 個數字的數組中排序結果例如以下:

例如以下的是大家耳熟能詳的冒泡算法(關于冒泡就不多說了):
先說下關于高速排序算法的思路:
選取數組第一個數字,作為key.并設定變量i為0,j為數組長度.
從數組最後一位開始向前找,找什麼呢?找比key小的數字(不能等于),并記錄下坐标j.限制條件是,在向前找的過程中假設一直沒找到比key小的數值,就在i<j的時候停止(假設沒有找到j就做減一操作繼續找).假設找到了就将數組[j]與數組[i]的值對換并結束.
從數組第一位開始向後找,找什麼呢?找比key大的數字(不能等于),并記錄下坐标i.限制條件是,在向前找的過程中假設一直沒找到比key大的數值,就在i<j的時候停止(假設沒有找到i就做加一操作繼續找).假設找到了就将數組[j]與數組[i]的值對換并結束.
完畢如上的操作,列印輸出數組發現:資料變得相對有序了,就是在數組中key值坐标前面的都是小于key的,key值坐标後面的都是大于key值得,
是以大家明确了:将以key值為坐标的數組拆分成2個數組,分别去運作123步驟操作,終于就會産生一個有序數組
算法例如以下