java 快速排序演算法與氣泡排序演算法

2021-06-26 19:41:43 字數 1562 閱讀 3839



首先看下

,氣泡排序演算法與快速排序演算法的效率

:如下的是main方法:

/**

* * @description:

* @author:[email protected]

* @date 2023年11月5日 下午1:02:10

*/public static void main(string args)

long beforeq = system.currenttimemillis();

quicksort(qarray, 0, qarray.length-1);

//氣泡排序演算法測試

int barray = new int[100000];

for (int i = 0; i < 100000; i++)

long beforeb = system.currenttimemillis();

bubble(barray);

}

在乙個有100000 個數字的陣列中排序結果如下:

如下的是大家耳熟能詳的冒泡演算法

(關於冒泡就不多說了

):

/**

* * @description:

* @author:[email protected]

* @date 2023年11月5日 下午1:00:32

*/public static void bubble(int data)

} }

先說下關於快速排序演算法的思路:

選取陣列第乙個數字,作為key.並設定變數i為0,j為陣列長度.

從陣列最後一位開始向前找,找什麼呢?找比key小的數字(不能等於),並記錄下座標j.限制條件是,在向前找的過程中如果一直沒找到比key小的數值,就在i的時候停止(如果沒有找到j就做減一操作繼續找).如果找到了就將陣列[j]與陣列[i]的值對換並結束.

從陣列第一位開始向後找,找什麼呢?找比key大的數字(不能等於),並記錄下座標i.限制條件是,在向前找的過程中如果一直沒找到比key大的數值,就在i的時候停止(如果沒有找到i就做加一操作繼續找).如果找到了就將陣列[j]與陣列[i]的值對換並結束.

完成如上的操作,列印輸出陣列發現:資料變得相對有序了,就是在陣列中key值座標前面的都是小於key的,key值座標後面的都是大於key值得,

所以大家明白了:將以key值為座標的陣列拆分成2個陣列,分別去執行123步驟操作,最終就會產生乙個有序陣列

演算法如下

/**

* * @description:

* @author:[email protected]

* @date 2023年11月5日 下午1:02:45

*/public static void quicksort(int array,int begin,int end)

if(++j< end)

}



java氣泡排序與快速排序

1.氣泡排序 public class bubblesort return count public int sort2 int array return count public static void main string args system.out.println bs.sort1 ar...

Java排序(氣泡排序 快速排序)

一 氣泡排序 冒泡演算法原理 冒泡演算法就是依次比較陣列中相鄰的兩個元素,如果左邊比右邊大則進行調換,以此類推,這樣第一次排序就把最大的元素放在最底下。舉例說明 要排序陣列 int arr 第1輪排序前陣列為 7,2,6,5,9,4 第1輪第1次比較 7大於2交換位置 2,7,6,5,9,4 第1輪...

排序演算法 3 氣泡排序與快速排序

氣泡排序演算法原理 1 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個 2 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。3 針對所有的元素重複以上的步驟,除了最後乙個。4 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較...