`

基本算法——冒泡排序

    博客分类:
  • JAVA
 
阅读更多

冒泡排序,是指计算机的一种排序方法,它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序、快速排序均不具有稳定性。不过,一路、二路归并排序、不平衡二叉树排序的速度均比冒泡排序快,且具有稳定性,但速度不及堆排序、快速排序。冒泡排序是经过n-1趟子排序完成的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数。

 

以上文字摘自百度百科

 

	private static void bubbleSort(int[] array) {
		boolean change = true;
		for (int i = array.length - 1; i > 1 && change; i--) {
			change = false;
			for (int j = 0; j < i; j++) {
				if (array[j] > array[j + 1]) {
					swap(array, j, j + 1);
					
					change = true;
				}
			}
		}
	}

 

之后会进行更进一步的分析

分享到:
评论

相关推荐

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

    冒泡排序是一种基础且经典的排序算法,其工作原理是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成...

    java算法——冒泡排序

    * 冒泡排序: * 每次在无序队列里将相邻两个数一次进行比较, * 将小数调到前面,逐次比较,直至将最大的数移到 * 最后。将剩下的N-1个数继续比较,将次大数移至 * 倒数第二位。

    排序代码——冒泡排序代码.png

    算法设计——排序代码——冒泡排序代码

    算法设计与分析——冒泡排序结果.png

    算法设计与分析课程——冒泡排序结果

    七上八下——冒泡排序.zip_goosex4s_冒泡排序

    在这个项目"七上八下——冒泡排序.zip_goosex4s_冒泡排序"中,作者goosex4s可能提供了关于冒泡排序的详细解释、代码实现以及可能的优化方法。后续的九种排序方式可能包括插入排序、选择排序、快速排序、归并排序、堆...

    常用排序算法——冒泡 选择 插入 快速

    常用的排序算法有冒泡排序、选择排序、插入排序、快速排序等。 一、插入排序(Insertion Sort) 插入排序是一种简单的排序算法。其基本思想是每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置...

    排序算法——冒泡,选择,插入,堆

    在本主题中,我们将深入探讨四种经典的排序算法:冒泡排序、选择排序、插入排序和堆排序。这些算法虽然简单,但理解它们的原理对于优化代码性能和提升编程技能非常有帮助。 首先,我们来讨论冒泡排序。冒泡排序是一...

    排序——冒泡排序,直接排序,反转排序

    这里我们将深入探讨三种常见的排序算法:冒泡排序、直接排序(也称为插入排序)以及反转排序。这些算法虽然简单,但在理解排序原理和优化算法性能方面具有重要意义。 1. 冒泡排序: 冒泡排序是最基础的排序算法之一...

    跟我学Java面向对象程序设计技术及应用——应用冒泡排序算法实现数组元素排序的Java程序实现示例.pdf

    本文档主要介绍了Java编程中的一种基础排序算法——冒泡排序,并结合实际示例详细阐述了如何在Java环境中实现冒泡排序算法。冒泡排序是一种简单直观的排序算法,它的核心思想是通过重复遍历待排序的序列,比较相邻...

    图形化编程实现冒泡排序(Scratch)

    少儿编程的算法比较少,这个Scratch文件结合了数据结构里的经典算法——冒泡排序,给出了实现过程。把少儿编程与算法结合到了一起

    冒泡排序-算法教程:Python 实现冒泡排序详解

    使用场景及目标:旨在帮助读者掌握一种基本且常用的排序方法——冒泡排序;了解其工作流程及优化技巧,以便在适当场景中灵活运用此算法解决排序问题;提高编码能力和逻辑思考能力。 其他说明:虽然冒泡排序不是最...

    排序算法介绍——冒泡排序+插入排序+选择排序

    冒泡排序是一种简单的排序算法,其基本思想是通过重复遍历数组,比较相邻的两个元素并根据需要交换它们的位置,使得每一次遍历都能将未排序的最大元素“浮”到数组的末尾。具体实现如以下代码所示: ```python def ...

    java语言排序——选择排序法和冒泡排序法(排序时间的测试盒比较)

    本文将深入探讨两种基本的排序算法:选择排序和冒泡排序,并通过实际代码实现和时间复杂度分析进行比较。 选择排序是一种简单直观的排序算法。它的基本思想是,在未排序的序列中找到最小(或最大)的元素,存放到...

    直接插入排序、冒泡排序、快速排序—于—实验七.pdf

    实验结果表明,直接插入排序算法、冒泡排序算法和快速排序算法都是有效的数据排序算法,但快速排序算法的性能最好。 本实验报告展示了直接插入排序算法、冒泡排序算法和快速排序算法的实现和比较,展示了实验步骤、...

    VB常用算法——排序.doc

    标题中的“VB常用算法——排序”指的是在Visual Basic编程环境中常用的排序算法,这些算法用于对一组数据进行排序,使得数据按照特定的顺序排列。在这个文档中,提到了两种常见的排序算法:选择法排序和冒泡法排序。...

    10大排序算法——01冒泡排序(Java实现)

    冒泡排序(Bubble Sort) 冒泡排序也叫起泡排序 冒泡排序的执行流程 1.从头开始比较每一对相邻元素,如果第一个比第二个大,就交换他们的位置。(执行完第一轮,最后的那个元素就是最大的元素) 2.忽略从步骤1中找到...

    数据结构与算法——排序

    本文将深入探讨在标题和描述中提及的几种排序算法:快速排序、堆排序和希尔排序,以及另外两种基础排序方法——插入排序和选择排序,以及冒泡排序。 1. **快速排序**:由C.A.R. Hoare在1960年提出,快速排序是一种...

    排序算法:冒泡排序所有源码src.zip

    这个算法的由来是因为,最大(最小)的元素会像烧水时的水泡一样,冒到顶端一样,所以起名为冒泡排序 ———————————————— 版权声明:本文为CSDN博主「进口小哥哥」的原创文章,遵循CC 4.0 BY-SA版权...

Global site tag (gtag.js) - Google Analytics