`
lvwenwen
  • 浏览: 958295 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

排序算法分析之冒泡排序

阅读更多

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
  冒泡排序算法的运作如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。


原文链接: http://www.cnblogs.com/wuzhenbo/archive/2012/03/30/2423861.html 

public class BubbleSort{
        public static void main(String[] args){
            int score[] = {667, 69, 755, 867, 589, 950, 929, 1300};
            for (int i = 0; i < score.length -1; i++){    //最多做n-1趟排序
                for(int j = 0 ;j < score.length - i - 1; j++){    //对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)
                    if(score[j] < score[j + 1]){    //把小的值交换到后面
                       int temp = score[j];
                        score[j] = score[j + 1];
                        score[j + 1] = temp;
                   }
               }            
               System.out.print("第" + (i + 1) + "次排序结果:");
               for(int a = 0; a < score.length; a++){
                   System.out.print(score[a] + "\t");
              }
               System.out.println("");
           }
              System.out.print("最终排序结果:");
              for(int a = 0; a < score.length; a++){
                   System.out.print(score[a] + "\t");
          }
      }
   }
 

 

分享到:
评论

相关推荐

    C#四种排序算法(冒泡排序)

    在C#编程中,排序算法是数据处理和分析的基础,常见的有冒泡排序、插入排序、选择排序和希尔排序。这四种排序算法各有特点,适用不同的场景。 1. **冒泡排序**: 冒泡排序是一种简单的排序算法,通过不断交换相邻...

    算法设计与分析-1排序算法性能分析-冒泡/选择/插入/合并/快速排序-pre ppt

    本篇文章将详细讨论几种常见的排序算法:选择排序、冒泡排序、插入排序、合并排序以及快速排序,分析它们的算法原理、时间效率,并通过经验分析验证理论分析的准确性。 **1. 选择排序(Selection Sort)** 选择排序...

    六种内部排序算法比较:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序。

    本话题主要探讨六种内部排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序以及堆排序。这六种排序算法各有优劣,适用于不同的场景,接下来我们将逐一进行详细阐述。 1. **直接插入排序**: 直接...

    排序算法 -- 冒泡排序

    虽然现代编程中更倾向于使用如快速排序、归并排序等效率更高的算法,但在学习编程和算法分析的过程中,冒泡排序仍然是一个不可或缺的基础知识。 在实际应用中,Java提供的`Arrays.sort()`方法使用了更高效的TimSort...

    各种排序算法 希尔排序 冒泡排序等

    4. **冒泡排序**:冒泡排序是最基础的排序算法之一,通过不断地交换相邻的逆序元素使大元素逐渐“浮”到序列末尾。冒泡排序的时间复杂度为O(n^2),稳定性好,但效率较低,适用于小规模数据的排序。 5. **希尔排序**...

    冒泡排序算法的C++函数模板

    冒泡排序算法是简单的排序算法之一,它的主要思想是通过反复比较相邻元素,将小的元素逐步移到序列的开始位置,而大的元素逐步移到序列的末尾位置,以达到排序的目的。下面是冒泡排序算法的C++函数模板的详细说明: ...

    内部排序算法分析

    内部排序算法广泛应用于数据库管理系统、数据分析、机器学习等领域,它们是许多高效算法的基础,例如搜索、统计计算和图形处理等。 在《数据结构课程设计》中,你可能需要设计并实现这些排序算法,理解它们的原理...

    C++排序算法之冒泡排序源码

    ### C++排序算法之冒泡排序源码解析 #### 一、冒泡排序简介 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是...

    数据结构之排序算法排序算法 快速冒泡 堆 希尔 直接插入 直接选择 基数 箱 桶

    2. **冒泡排序**:冒泡排序是最基础的排序算法之一,通过不断地比较相邻元素并交换(如果需要)来逐步排序数组。它的工作原理类似于水底下的气泡,较小的元素逐渐“浮”到数组的顶部。 3. **堆排序**:堆排序利用了...

    直接插入排序 冒泡排序 快速排序 直接选择排序 堆排序 二路归并排序 C#源代码

    直接插入排序、冒泡排序、快速排序、直接选择排序、堆排序和二路归并排序是计算机科学中经典的排序算法,它们在数据处理和算法学习中占有重要地位。这些排序算法各有特点,适用场景不同,下面将逐一详细介绍,并结合...

    经典排序算法(希尔 冒泡 插入 选择)

    接下来,我们来分析冒泡排序。作为一种简单的排序算法,冒泡排序通过重复遍历待排序的数组,比较并交换相邻的元素,使得较大的元素逐步“冒泡”到数组的末尾。尽管冒泡排序在实现上十分直观,且是稳定的排序算法,但...

    Verilog/C++实现排序算法:Verilog/C++实现排序算法:冒泡排序、选择排序、并行全比较排序、串行全比较排序

    通过阅读和分析这些代码,可以深入理解各种排序算法的内部工作原理,以及如何在不同层面(软件和硬件)实现它们。同时,这也为优化排序算法提供了实践机会,比如在特定硬件平台上优化性能,或者在保证正确性的前提下...

    各种排序算法(冒泡,快速,插入,选择排序等)

    在程序设计中,高效排序算法的应用无处不在,从数据库管理到数据分析,再到机器学习,它们都是基础且至关重要的工具。以下是对给定标题和描述中提及的几种排序算法的详细解释: 1. **冒泡排序**:这是一种简单的...

    排序算法比较(冒泡,选择,快排,堆排,归并,插入)

    本主题将深入探讨六种常见的排序算法:冒泡排序、选择排序、快速排序、堆排序、归并排序和插入排序。每种算法都有其独特的实现方式和效率特点,下面我们将逐一分析。 1. **冒泡排序**: 冒泡排序是一种简单的交换...

    JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序

    在计算机科学中,排序算法是数据处理的重要组成部分,尤其是在大数据处理和数据分析中。本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及...

    Java冒泡排序算法

    #### 四、冒泡排序复杂度分析 - **时间复杂度**: - 最好情况:输入数组已经是有序的,此时的时间复杂度为O(n),因为只需要进行一次遍历就可以确定数组已经有序。 - 平均情况:O(n^2),需要遍历n次,每次遍历都...

    算法可视化系列——排序算法——冒泡排序

    - **冒泡排序**:最简单的排序算法之一,时间复杂度为O(n^2)。 2. **冒泡排序步骤**: - 遍历数组,比较相邻元素的值。 - 如果前一个元素大于后一个元素,则交换它们的位置。 - 这个过程会持续n-1轮(对于n个...

    冒泡排序-排序过程 冒泡排序-排序过程

    冒泡排序之所以得名是因为较轻的元素(即较小的元素)会逐渐“浮”向数组的顶端,如同水中的气泡逐渐上升一样。 #### 二、冒泡排序的实现过程 冒泡排序的过程可以形象地比喻为一系列有重量的气泡,根据轻气泡不能...

    易语言冒泡排序算法

    8. **性能分析**:虽然冒泡排序的时间复杂度为O(n²),在大数据量下效率较低,但其简单易懂的实现方式使其在教学和理解排序算法时仍然有其价值。 通过学习易语言实现冒泡排序,不仅可以掌握基本的排序算法,还能...

Global site tag (gtag.js) - Google Analytics