天天看點

java:高速排序算法與冒泡排序算法



Java:高速排序算法與冒泡算法

首先看下,冒泡排序算法與高速排序算法的效率:

例如以下的是main方法:

在一個有100000 個數字的數組中排序結果例如以下:

java:高速排序算法與冒泡排序算法

例如以下的是大家耳熟能詳的冒泡算法(關于冒泡就不多說了):

先說下關于高速排序算法的思路:

選取數組第一個數字,作為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步驟操作,終于就會産生一個有序數組

算法例如以下