冒泡排序,是指计算机的一种排序方法,它的时间复杂度为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++实现。
数据结构冒泡排序算法 数据结构冒泡排序算法
根据以下ASMD图设计验证冒泡排序算法。数据串行输入Data_in,串行输出Data_out。给出设计程序及时序仿真结果。
冒泡排序算法,包含前向冒泡、后向冒泡以及双向冒泡
该 ppt 为课程讲义,讲解冒泡排序算法原理,及用一个简单实例进行具体分析,还有冒泡排序算法原理的总结等。
数组应用及冒泡排序算法示例,适用于初学者
冒泡排序算法两种C语言实现方法,在VC开发环境下验证通过
插入和冒泡排序算法Demo
用C++语言实现冒泡排序算法的动态掩饰的代码
//冒泡排序 for(int i=0;i;i++){ for(int j=i+1;j;j++){//注意j的开始值是i+1,因为按照排序规则,比a[i]大的值都应该在它后面 if(a[i] > a[j]){ int temp = a[j]; a[j] = a[i]; a[i] = temp; ...
python 冒泡排序算法 Python 冒泡排序算法 冒泡排序算法是一种简单的排序算法,它的基本思想是通过不断比较相邻的元素,将较大的元素向后移动,较小的元素向前移动,从而实现排序的目的。冒泡排序算法的时间复杂度为...
介绍了C语言冒泡排序算法的原理、步骤、实现方法和优化技巧,以及相关的概念和知识,如数组、循环、交换、比较、稳定性、时间复杂度等。本资源适合C语言初学者和考生使用,帮助他们深入理解和掌握冒泡排序算法的原理...
试通过随机数据比较快速排序、起泡排序各算法的关键字比较次数和关键字移动次数。 (1)待排序表的表长不小于100;其中的数据要用伪随机数产生程序产生;... (3)对冒泡排序应指出进行了多少趟。
该资源详细介绍了如何使用C语言实现冒泡排序算法。冒泡排序是一种简单的排序算法,通过重复地遍历待排序的序列,比较相邻的两个元素,若它们的顺序错误则交换它们,直到没有需要交换的元素为止。本资源首先解释了...
易语言冒泡排序算法
三种冒泡排序算法的例子,比较区别与联系!
,程序实现冒泡排序十万个数(调用),可以改成输入。并附加程序运行计时,用于测试时间复杂度,可以移除
汇编语言编写的冒泡排序程序代码,从小到大排序,并以十进制字符串的形式输出排序结果。
冒泡排序算法.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码冒泡排序算法.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码冒泡排序算法.zipscratch2.0 3.0编程项目源文件源码经典游戏案例...
用C编写的冒泡排序算法:#include void main() { int i=0,j=0,t; int a[10]; for(i=0;i;i++) scanf("%d",&a[i]); for(i=0;i;i++) for(j=0;j;j++) if(a[j]>a[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t;} for...