首先看下
,氣泡排序演算法與快速排序演算法的效率
:如下的是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 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較...