七大排序算法之冒泡排序
前言
感觉虽然学了这么久的编程,但是越发感觉自己编程的思维没有达到理想中的效果,于是决定整理一下常见的七大排序算法,虽然都很基础,我也是这么认为的,但是越是基础的东西,吃透了之后,还是能有所收获的,比如排序算法,至少在需要的场合,能够信手拈来,我觉得这是必须的。废话不多说,先从最简单的冒泡排序开始。
原理
不断遍历数组每个元素,比较相邻两个元素的大小,如果为升序,当前者元素大于后者时,则交换这两个元素,直到第n-1个元素,则第一次遍历结束,此时最大的数已经“冒泡”到了最后,然后遍历余下的n-1个元素,同样的操作,第二大的数“冒泡”到了倒数第二个位置,往复下去即可完成排序
时间复杂度
平均情况:n*n
最坏情况:n*n
最好情况:n
代码
public class BubbleSort {
//冒泡排序
//不断比较相邻的两个数的大小。交换位置
//时间复杂度 最坏情况 n*n 最好情况 n 平均情况 n*n
public static void main(String[] args) {
int[] arr={6,3,8,2,9,1};
System.out.println("排序前数组为:");
for(int num:arr){
System.out.print(num+" ");
}
for(int i=0;i<arr.length-1;i++){//外层循环控制排序趟数
for(int j=1;j<arr.length-i;j++){//内层循环控制每一趟排序多少次
if(arr[j-1]>arr[j]){
int temp=arr[j-1];
arr[j-1]=arr[j];
arr[j]=temp;
}
}
}
System.out.println();
System.out.println("排序后的数组为:");
for(int num:arr){
System.out.print(num+" ");
}
}
}
下一篇:选择排序
入口在此:
选择排序
https://blog.csdn.net/hq942845204/article/details/80156508