冒泡排序,是指计算机的一种排序方法,它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序、快速排序均不具有稳定性。不过,一路、二路归并排序、不平衡二叉树排序的速度均比冒泡排序快,且具有稳定性,但速度不及堆排序、快速排序。冒泡排序是经过n-1趟子排序完成的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数。
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
public class Test {
public static void main(String[] args) {
int[] array = { 10, -3, 5, 34, -34, 5, 0, 9 }; //需要被排序的数组
sort(array); //调用排序方法
for (int el : array) {
System.out.print(el + " ");
}
}
static void sort(int[] array) {
int length = array.length;
int temp;
for (int i = 1; i < length; i++) {
for (int j = 0; j < length - i; j++) { //最大值一次被排到后面,那么下一次循环排序的时候只排前面得数
if (array[j] > array[j + 1]) { // 交换
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
}
分享到:
相关推荐
设计一个双向冒泡排序算法。要求用C/C++实现。
### Java冒泡排序算法知识点详解 #### 一、冒泡排序基本概念 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是...
### 冒泡排序算法的动态演示程序:深入解析与实现 #### 一、冒泡排序算法简介 冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。...
冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python...
冒泡排序是一种基础且经典的排序算法,...为了深入理解这个设计,你应该详细阅读这些文件,理解每个部分的作用,并尝试自己动手实现和验证冒泡排序算法。这样不仅可以加深对冒泡排序的理解,也能增强Verilog编程能力。
冒泡排序算法的C++函数模板 冒泡排序算法是简单的排序算法之一,它的主要思想是通过反复比较相邻元素,将小的元素逐步移到序列的开始位置,而大的元素逐步移到序列的末尾位置,以达到排序的目的。下面是冒泡排序...
**插入排序与冒泡排序算法详解** 在计算机科学中,排序是数据处理的重要部分,它涉及到将一组数据按照特定顺序排列。插入排序和冒泡排序是两种基础且经典的排序算法,它们都属于简单排序方法,适合小规模或者部分...
数据结构冒泡排序算法 数据结构冒泡排序算法
冒泡排序是一种简单的排序算法,它的基本思想是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这...
冒泡排序算法,包含前向冒泡、后向冒泡以及双向冒泡
该 ppt 为课程讲义,讲解冒泡排序算法原理,及用一个简单实例进行具体分析,还有冒泡排序算法原理的总结等。
冒泡排序算法 冒泡排序是一种简单、易懂的交换排序方法,它通过将相邻元素进行比较和交换,逐步将一个无序序列排列为一个有序序列。冒泡排序算法的主要思想是通过重复地比较相邻的元素,如果它们的顺序错误就交换...
冒泡排序算法两种C语言实现方法,在VC开发环境下验证通过
在易语言中实现冒泡排序算法,我们可以按照以下步骤进行: 1. **初始化**:首先,我们需要一个数组来存储待排序的数据。易语言中定义数组可以通过`数组定义`语句,例如`整数数组 数组名 = [元素个数]`。 2. **外层...
冒泡排序算法是一种基础的排序算法,通过重复遍历要排序的数列,比较相邻的两个数,如果前一个比后一个大,则将它们两个对调。每一轮遍历结束后,数列中的最大值就会“冒泡”到数列的末尾。简单来说,就是通过重复...
本篇我们将深入探讨TIA博途SCL语言中的冒泡排序算法,并介绍如何创建一个全局函数块(FC)库,实现升序或降序的排序功能。 冒泡排序是一种简单但效率较低的排序算法,它的基本思想是通过重复遍历待排序的序列,比较...
### 关于C++冒泡排序算法的深度解析 在计算机科学与编程领域,排序算法是基础且关键的一部分,其中冒泡排序(Bubble Sort)作为最简单直观的排序算法之一,常被用作教学示例,尤其适合初学者理解排序算法的基本原理...
冒泡排序是一种基础的排序算法,它通过重复遍历待排序的序列,比较相邻元素并交换位置,使得每个元素都能逐步“浮”到正确的位置上。在这个过程中,最大(或最小)的元素会像气泡一样逐渐上升到序列的顶端。这种算法...