你想對數據進行排序,有許多算法可以實現排序
在這裏,我給大家介紹排序算法之一的冒泡算法
實現思路:
比較相鄰的兩個元素,如果第一個比第二個小(大),則交換它們的位置。
重複當前動作,直到排序完成
如: 3 , 5 , 2 , 7 , 9 , 6 , 4
第一次排序 3 , 2 , 5 , 7 , 6 , 4 , 9 (9沉到末排序尾部)
第二次排序 2 , 3 , 5 , 6 , 4 , 7 , 9 (7沉到末排序尾部)
第三次排序 2 , 3 , 5 , 4 , 6 , 7 , 9 (6沉到末排序尾部)
第四次排序 2 , 3 , 4 , 5 , 6 , 7 , 9 (5沉到末排序尾部,排序完成)
時間複雜度 O(n²)
(穩定)
public void selection_sort(int[] arr){
for (int i = 0; i < arr.length-1; i++) {
/**
* 每一次排序都會確定當前最大元素的位置
* -i 是爲了節約資源 不需要再對已排序好的元素進行操作
*/
for(int j=0;j < arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
該鏈接是筆者對於二分查找法的理解,配合二分查找法,能夠更高效實現對於數據的操作
以上是筆者對於冒泡排序算法的理解,如有不妥之處,還請各位大佬指出
謝謝
{\__/} {\__/}
( ·-·) (·-· )
/ >------------------------------------------------< \
| ☆ |
| ☆ |
| ★ |
| ☆ |
| ☆ |
| |
-------------------------------------
如有興趣可以關注我的公衆號: