前言
感觉虽然学了这么久的编程,但是越发感觉自己编程的思维没有达到理想中的效果,于是决定整理一下常见的七大排序算法,虽然都很基础,我也是这么认为的,但是越是基础的东西,吃透了之后,还是能有所收获的,比如排序算法,至少在需要的场合,能够信手拈来,我觉得这是必须的。废话不多说,先从最简单的冒泡排序开始。
原理
不断遍历数组每个元素,比较相邻两个元素的大小,如果为升序,当前者元素大于后者时,则交换这两个元素,直到第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+" "); } } }
下一篇:选择排序
入口在此:点我学习选择排序