zoukankan      html  css  js  c++  java
  • 排序算法--冒泡排序

            冒泡排序是最简单入门的排序算法了。我们来分析分析。

            1 假设我们要排序的数组如下,排序结果按升序排列。

    int array[] = {43,24,12,56,78,9,67,50};


            2 其数组长度为int n = array.length;

            3 冒泡排序的定义是将最大值依次向数组右侧移动。也就是说需要相邻的元素进行比较。那么这么操作的规律就如下了:

                    (1) 第一次循环比较,数组中的最大值被移动到最右侧。

                    (2) 第二次循环比较,数组中第二大的值被移动到倒数第二位。并且最右侧的值不用进行比较了。

                    (3) 第三次循环比较,数组中第三大的值被移动到倒数第三位,并且最右侧的两个值不用进行比较了。

                              .......

                     我们总共需要循环比较n次。每一次循环只需选出一个最大值往最右侧移动即可。

    代码如下:

    public class BubbleSort {
    	public static void main(String[] args) {
    		int array[] = {43,24,12,56,78,9,67,50};
    		for(int i=0;i<array.length;i++)
    			for(int j=0;j<array.length-i-1;j++){
    				if(array[j] > array[j+1]){
    					int temp = array[j];
    					array[j] = array[j+1];
    					array[j+1] = temp;
    				}
    			}
    		
    		for(int i=0;i<array.length;i++){
    			System.out.println(array[i]);
    		}
    	}
    }
    


    for(int i=0;i<array.length;i++)

     这一句代码就说明一共要循环比较n次。

    for(int j=0;j<array.length-i-1;j++)

    这一句代码就说明上述第三点的结论。





  • 相关阅读:
    Linux IO接口 监控 (iostat)
    linux 防火墙 命令
    _CommandPtr 添加参数 0xC0000005: Access violation writing location 0xcccccccc 错误
    Visual Studio自动关闭
    Linux vsftpd 安装 配置
    linux 挂载外部存储设备 (mount)
    myeclipse 9.0 激活 for win7 redhat mac 亲测
    英文操作系统 Myeclipse Console 乱码问题
    Linux 基本操作命令
    linux 查看系统相关 命令
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3257989.html
Copyright © 2011-2022 走看看