一.排序方法
- 将被排列的数组data[0...n]垂直排列,每个元素data[i]看作是一个气泡,气泡的重量就是data[i]的值。
- 从最下面一个气泡data[n]开始扫描,比较其与上一个气泡data[n-1]的重量,data[n] < data[n-1]则交换;然后比较data[n-1]与data[n-1-1]...一轮下来,最轻的气泡跑到了最上面data[0]的位置。
- 重复2过程,让第二轻的气泡跑到data[1]的位置;再次重复...
二.动画演示
http://student.zjzk.cn/course_ware/data_structure/web/flashhtml/maopaopaixu.htm
三.Java代码
- public static int[] bubbleSort(int[] data) {
- int temp = 0;
- for(int i=0; i < data.length -1; i++) { //每一轮
- boolean exchange = false; //每一轮设置一个是否有元素交换的标志
- int j = data.length -1;
- for(; j > i; j--) {
- if(data[j] < data[j-1]) { //元素和上一个元素比较
- temp = data[j];
- data[j] = data[j-1];
- data[j-1] = temp;
- exchange = true; //有元素交换
- }
- }
- if(!exchange) { //如果一轮下来,没有元素交换,说明data已经是排好序了,无需进行下一轮
- break;
- }
- }
- return data;
- }
四.时间复杂度和稳定性
- 最好时间复杂度
- 若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数C和记录移动次数M均达到最小值。
- Cmin=n-1=O(n)
- Mmin=0
- 冒泡排序最好的时间复杂度为O(n)
- 最坏时间复杂度
- 若初始文件是反序的,需要进行n-1趟排序。每趟排序要进行n-i次关键字的比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下,比较和移动次数均达到最大值。
- Cmax=n(n-1)/2=O(n2)
- Mmax=3n(n-1)/2=O(n2)
- 冒泡排序的最坏时间复杂度为O(n2)
- 平均时间复杂度
- O(n2)
- 冒泡排序是就地排序,且它是稳定的。
五.算法优化
- 设置exchange标志。如果不设置,Cmin=n(n-1)/2=O(n2)
相关推荐
程序中可能包含对传感器数据的实时处理,如PID(比例-积分-微分)算法,以确保精确跟踪。此外,还可能涉及传感器阵列的布局优化,以提高在各种环境下的追踪性能。 二、红外避障 红外避障是利用红外线传感器探测...
综上所述,ZY3-01星SC产品的命名规则详细规定了卫星数据的结构化表示方法,通过这些规则,用户能够快速识别出数据的基本特征,如成像时间、产品级别、波段配置等关键信息,从而方便后续的数据管理和应用。
总的来说,ZY08-C循迹寻黑线程序是一个集成了硬件感知、软件控制和智能算法的综合项目,它展示了单片机在自动化控制领域的应用,对于学习单片机编程、智能小车设计以及传感器应用的人来说,是一个很好的实践案例。
综上所述,这个项目涵盖了51单片机编程、传感器应用、控制算法设计和无线通信等多个方面,是学习和实践嵌入式系统开发的一个好案例。通过研究和理解这个项目,你可以掌握如何利用51单片机实现复杂的自动化任务,并为...
"9.ZY08-C智能小车配套例程代码.zip"是一个压缩包文件,包含了为这种特定型号智能小车设计的功能程序和相关的注释。这些代码是实现小车智能化运作的关键,通过分析和理解这些代码,我们可以深入学习智能小车的工作...
【ZY08-C循迹加红外避障综合程序代码】是一...总之,ZY08-C循迹加红外避障综合程序是一个集成了多种技术的智能控制系统,涵盖了硬件接口、传感器数据处理、运动控制等多个方面,体现了嵌入式系统设计的复杂性和综合性。
【ZY-Player-Setup-2.7.2.zip】是一个媒体播放器的安装包,它具有内置的资源搜索功能,让用户无需在多个平台之间切换,即可方便地找到并播放所需的多媒体内容。这款软件名为ZY Player,版本号为2.7.2,其核心特点是...
【ZY08-C循迹寻黑线程序代码】是一个针对智能小车或机器人设计的程序,主要用于让设备能够沿着黑色线条行走,这类技术在自动导航、玩具车竞赛、教育项目等领域有着广泛应用。在这个程序中,核心是通过传感器检测地面...
综上所述,《RF-SJ-ZY-04-F03 结构专业图纸审查标准及要点》是一份详尽的指导资料,它对于提升结构专业图纸审查的质量,保障建筑项目的顺利进行具有重要意义。在实际操作中,应结合具体情况灵活运用,不断学习和总结...
ZY-Player-Setup-2.6.4.exe
学习者可能需要展示他们对编程语言的掌握程度,包括语法、数据结构、算法以及编程最佳实践。 【压缩包子文件的文件名称列表】:ZY1906-大作业,只有一个文件名,这可能是一个包含所有作业相关文件的主目录或文件,...
为了提高资源采出率,确保矿井安全高效生产,实现厚煤层一次采全高,平煤股份决定在十二矿上马一套大型综采设备。该套设备采用ZY6400-23.5/45型液压支架,最大采高达4.5 m。由于十二矿井下主要巷道断面较小,支架必须解体...
ZY4200-17/38支架是一种二柱式掩护支架,其顶梁部分配备了伸缩装置,能够适应不同地质条件下的顶板支护需求。前梁作为支护系统的前沿部分,常常直面破碎不稳定顶板带来的直接压力。前梁机构是由前梁、伸缩梁、导向梁...
【ZY08-C机器人灭火程序程序代码】是一个专为机器人灭火比赛设计的软件控制系统,它涉及到的领域包括机器人控制、传感器应用、算法设计以及编程语言的运用。在深入理解这个程序之前,我们需要对以下几个关键知识点有...
【ZY08-C红外避障程序代码】是一个专门用于机器人或自动化设备...综上所述,【ZY08-C红外避障程序代码】涵盖了红外传感技术、数据处理、算法设计、控制逻辑等多个方面,对于理解和应用智能避障系统有着重要的学习价值。
zy-player PC端
ZY-TP21便捷式打印机驱动是一款嵌入式微型打印机,这款打印机体积小,重量轻,噪音低,易集成,操作简单,可靠性强,这里介绍的正是针对这款打印机的驱动,ZY-TP21便捷式打印机驱动,有需要的朋友们快来下载吧。...
标题中的“参考资料-表19 ZY13-2钢材试验报告汇总表.zip”表明这是一个关于钢材试验数据的压缩文件,其中包含了名为“表19 ZY13-2钢材试验报告汇总表.doc”的文档。这个文件很可能是工程或材料科学领域的一个重要...
这个压缩包文件名为"RF-GC-ZY-04-F01 房屋验收记录单.zip",暗示其内容可能包含了一份关于房屋验收过程的详细记录单,通常以文档形式存在,例如这里的"RF-GC-ZY-04-F01 房屋验收记录单.doc"。 房屋验收是建筑工程中...
【ZY08-C寻光程序代码】是一种专为特定任务设计的编程代码,可能是用于机器人导航、自动化设备或光学传感器的应用。在这个项目中,“寻光”可能指的是程序能够追踪光源或者定位光的方向,以实现自动化的移动或操作。...