【算法】冒泡排序

原创 2016年08月30日 23:55:20


画外音:

在深入学习更多排序算法后和在实际使用情况中,冒泡排序的使用还是极少的。它适合数据规模很小的时候,而且它的效率也比较低,但是作为入门的排序算法,还是值得学习的 。


冒泡排序相邻的两个元素进行比较,如果符合条件,就换位。

         第一圈,最值出现在了最后一位。如果要升序,则,最大值在最后一位,如果是降序,则最小值在最后一位。

         然后,第二圈,同样比较,次数少1,因为最后一位已经排出来。

         第三圈,依次类推,次数再少1,最后两位不用参与排序。


冒泡排序最坏情况的时间复杂度是O(n²)


代码(升序举例)
<span style="font-size:12px;color:#000000;background-color: rgb(255, 255, 255);">public static void main(String[] args) {
		
		int[] arr = {5,1,6,4,2,8,9,3};
		//排序前
		System.out.print("排序前:");
		printArray(arr);
		//排序
		bubbleSort(arr);
		
		//排序后
		System.out.print("排序后:");
		printArray(arr);
	}
	
	//冒泡排序
	public static void bubbleSort(int[] arr){
		
		for(int x=0;x<arr.length-1;x++){
			
			//-x:让每一次比较的 元素减少;-1:避免角标越界
			for(int y=0;y<arr.length-x-1;y++){
				</span><span style="font-size:12px;color:#000000;background-color: rgb(255, 255, 255);">
				if(arr[y] > arr[y+1]){
					
					int temp = arr[y];
					arr[y] = arr[y+1];
					arr[y+1] = temp;
				}
			}
		}
	}
	
	//打印数组的方法
	public static void printArray(int[] arr){
		
		System.out.print("[");
		for(int i=0;i<arr.length;i++){
			
			if(i!=arr.length-1){
				System.out.print(arr[i]+",");
			}else{
				System.out.println(arr[i]+"]");
			}
		}
	}</span>


运行结果:



如果想要降序排序,只需要将嵌套循环,if语句中的条件语句写成小于号,就OK啦!
好啦,简单的冒泡排序就完成啦~
版权声明:本文为小小菇凉的原创文章,未经允许不得转载,转载请注明出处哦~ 谢谢^.^

C++简单排序算法之冒泡排序

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需...
  • zhengjuexi4456
  • zhengjuexi4456
  • 2016年09月08日 22:01
  • 23142

经典排序算法(1)——冒泡排序算法详解

冒泡排序(Bubble Sort)是一种典型的交换排序算法,通过交换数据元素的位置进行排序。 一、算法基本思想 (1)基本思想 冒泡排序的基本思想就是:从无序序列头部开始,进行两两比较,根据大...
  • guoweimelon
  • guoweimelon
  • 2016年03月16日 10:52
  • 17751

冒泡排序算法及其两种优化

冒泡排序算法及其两种优化 1、排序方法      将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R...
  • yanxiaolx
  • yanxiaolx
  • 2016年06月09日 18:08
  • 8142

冒泡排序算法

  • 2014年09月16日 09:59
  • 533B
  • 下载

冒泡排序的算法

  • 2013年05月27日 09:39
  • 241KB
  • 下载

一个简单的产生随机数并冒泡排序的算法

  • 2017年12月20日 21:32
  • 11KB
  • 下载

冒泡排序算法

  • 2014年03月23日 10:54
  • 1.02MB
  • 下载

冒泡排序优化算法

  • 2013年11月26日 20:02
  • 2KB
  • 下载

数据结构冒泡排序算法

  • 2012年05月14日 23:52
  • 1KB
  • 下载

冒泡排序c语言算法

  • 2015年06月01日 19:57
  • 379B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【算法】冒泡排序
举报原因:
原因补充:

(最多只允许输入30个字)