七大排序算法之冒泡排序

前言

感觉虽然学了这么久的编程,但是越发感觉自己编程的思维没有达到理想中的效果,于是决定整理一下常见的七大排序算法,虽然都很基础,我也是这么认为的,但是越是基础的东西,吃透了之后,还是能有所收获的,比如排序算法,至少在需要的场合,能够信手拈来,我觉得这是必须的。废话不多说,先从最简单的冒泡排序开始。

原理

不断遍历数组每个元素,比较相邻两个元素的大小,如果为升序,当前者元素大于后者时,则交换这两个元素,直到第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+" ");
		}
	}
}

下一篇:选择排序

入口在此:点我学习选择排序

猜你喜欢

转载自blog.csdn.net/hq942845204/article/details/80156171