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

标签: Java冒泡排序
36人阅读 评论(0) 收藏 举报
分类:

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

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


题目

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

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,不影响排序效果。
查看评论

计蒜客 难题题库 133 冒泡排序

665次  17.5%  1000ms  65536K 冒泡排序是一种常见的排序算法,本题要求用冒泡排序算法对一组数字进行从小到大排序 输入:输入的是一行数字,就是我们需要排序的数字 输...
  • changshu1
  • changshu1
  • 2015-08-10 09:47:13
  • 366

排序算法集合(一)冒泡排序精讲

算法思想分析: 对于一排没有顺序的数据,从第一个数据开始两两进行比较,将进行比较的两个数据中较大的通过交换放在较小的数据后面(若较大的数据在本来就在后面,则不进行交换),若两数据相等,则不进行交换(冒...
  • qq_35326835
  • qq_35326835
  • 2016-07-08 22:46:15
  • 278

几种常见的排序算法及其复杂度——冒泡排序(一)

这一系列文章将介绍算法时间复杂度的概念,以及常见排序算法的时间复杂度。...
  • zaishaoyi
  • zaishaoyi
  • 2015-08-05 17:23:10
  • 954

知识点6:常见的排序算法---冒泡排序

说起排序算法,绝对是很多公司会要求现场手写的部分,虽然我还没有经历过这个,毕竟只面试了一次,但难免会在下一次出现。我原本是打算在一个章节里面全部写完所有的排序算法,但想来想去,与其一窝端,不明原理的记...
  • dengminghli
  • dengminghli
  • 2017-05-23 16:17:28
  • 573

排序算法之冒泡排序的思想以及Java实现

1 基本思想 设排序表长为n,从后向前或者从前向后两两比较相邻元素的值,如果两者的相对次序不对(A[i-1] > A[i]),则交换它们,其结果是将最小的元素交换到待排序序列的第一个位置,我们称它...
  • whq19890827
  • whq19890827
  • 2016-08-14 21:12:47
  • 3022

Java算法实现之冒泡排序及优化

Java算法实现之冒泡排序及优化
  • a445849497
  • a445849497
  • 2017-02-14 15:14:41
  • 884

常见排序算法(一)(冒泡排序、插入排序)

本文介绍排序算法中的冒泡排序和插入排序,冒泡排序分为基本冒泡排序与改进版冒泡排序,插入排序分为直接插入排序,二分插入排序和希尔排序,并对每种排序算法进行了分析,附带java实现代码。...
  • sysukehan
  • sysukehan
  • 2016-09-25 13:30:39
  • 2004

常见排序算法(Java实现)

  • 2012年12月19日 18:19
  • 28KB
  • 下载

【排序算法】冒泡排序原理及Java实现

冒泡排序顾名思义就是整个过程像气泡一样往上升,单向冒泡排序的基本思想是(假设由小到大排序):对于给定n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行...
  • jianyuerensheng
  • jianyuerensheng
  • 2016-04-26 21:26:11
  • 9137

Java中的冒泡排序算法-简单实例

冒泡算法的原理实现:(从小到大排序)   1:比较相邻的两个元素,如果第一个比第二个大就交换位置。   2:对每一对相邻的元素进行比较,从开始第一队到结尾的最后一对,这样最后的元素就是最大的了。   ...
  • qq_36880602
  • qq_36880602
  • 2017-04-10 20:02:53
  • 3096
    个人资料
    持之以恒
    等级:
    访问量: 98万+
    积分: 1万+
    排名: 834
    自动化测试学习交流群
    欢迎各位测试和自动化测试的伙伴加入QQ群,群号是:756276708,互相学习和提高测试技术和代码能力。
    最新评论