Java常见排序算法-15-冒泡排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011541946/article/details/79954757

       本篇开始学习排序,主要学习冒泡,选择,二分查找三种基本的排序算法。这三个排序算法,不用讲,面试之前必须要准备的,个人意见,即使背也要背下来。这三个经常在面试过程中,让你写在黑板上或者白纸上。冒泡是最简单的,二分和选择排序被要求写代码的概率比冒泡要多得多,因为冒泡大家都听过,多少会写一点。

      这篇,通过一个数组的冒泡排序过程,先画一个图,然后总结出结论,然后写出冒泡排序代码。


题目

要求给定任意一个整形数组,写一个冒泡排序算法,输出排序后的数组元素。

1.画图和分析出结论

我们通过具体画图演示一个5个元素个数的具体冒泡排序过程。

2.代码实现过程

package sort;

public class Test_MaoPao {

	public static void main(String[] args) {
		int[] arr = {24,69,80,57,13};
        bubbleSort(arr);
	}

	public static void bubbleSort(int[] arr) {
		
		//1.嵌套for循环
		for(int i = 0; i < arr.length-1; i++) { //2.外层控制走几次,需要比较arr.length-1次
			for(int j = 0; j < arr.length-1-i; j++) { // 3.内层控制比较几次,注意length-1,为了防止索引越界
		
				// 4.相邻位置两两比较,小的在前,大的在后,进行位置交换
				if(arr[j] > arr[j+1]) {
					int tmp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = tmp;
				}
			}
			
		}
		// 5. 遍历输出排序后的数组
		for(int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+ " ");
		}
	}

}
      上面代码注意,在内层循环中j<arr.length-1-i的作用,-1是为了防止出现索引越界异常,-i是为了提升算法效率,即使不写-i,不影响排序效果。
阅读更多

没有更多推荐了,返回首页