你想对数据进行排序,有许多算法可以实现排序
在这里,我给大家介绍排序算法之一的冒泡算法
实现思路:
比较相邻的两个元素,如果第一个比第二个小(大),则交换它们的位置。
重复当前动作,直到排序完成
如: 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;
}
}
}
}
该链接是笔者对于二分查找法的理解,配合二分查找法,能够更高效实现对于数据的操作
以上是笔者对于冒泡排序算法的理解,如有不妥之处,还请各位大佬指出
谢谢
{\__/} {\__/}
( ·-·) (·-· )
/ >------------------------------------------------< \
| ☆ |
| ☆ |
| ★ |
| ☆ |
| ☆ |
| |
-------------------------------------
如有兴趣可以关注我的公众号: