如何用微信打开微网站,成都网站设计 冠辰,二级域名网站查询,网站策划 ppt排序算法-冒泡排序法#xff08;BubbleSort#xff09;
1、说明
冒泡排序法又称为交换排序法#xff0c;是从观察水中的气泡变化构思而成的#xff0c;原理是从第一个元素开始#xff0c;比较相邻元素的大小#xff0c;若大小顺序有误#xff0c;则对调后再进行下一个…排序算法-冒泡排序法BubbleSort
1、说明
冒泡排序法又称为交换排序法是从观察水中的气泡变化构思而成的原理是从第一个元素开始比较相邻元素的大小若大小顺序有误则对调后再进行下一个元素的比较就仿佛气泡从水底逐渐冒升到水面上一样。如此扫描过一次之后就可以确保最后一个元素位于正确的顺序。接着逐步进行第二次扫描直到完成所有元素的排序为止。 2、算法分析
最坏情况和平均情况均需比较次时间复杂度为。最好情况只需完成一次扫描若发现没有进行数据互换位置的操作则表示已经排序完成所以只进行了n-1次比较时间复杂度为。由于冒泡为相邻两个数据相互比较而后决定是否互换位置并不会改变原来排列的顺序因此属于稳定排序法。因为只需一个额外的空间所以空间复杂度为最佳。此排序法适用于数据量小或有部分数据已经过排序的情况。 3、C代码
第一种案例
#includeiostream
using namespace std;int main() {int data[6] { 6,5,9,7,2,8 };cout 原始数据 endl;for (int i 0; i 6; i) {cout data[i] ;}cout endl;cout ----------- endl;//第1次排序后的结果是//5 6 7 2 8 9//第2次排序后的结果是//5 6 2 7 8 9//第3次排序后的结果是//5 2 6 7 8 9//第4次排序后的结果是//2 5 6 7 8 9//第5次排序后的结果是//2 5 6 7 8 9for (int i 5; i 0; i--) {for (int j 0; j i; j) {if (data[j] data[j 1]) {int temp 0;temp data[j];data[j] data[j 1];data[j 1] temp;}}cout endl;}cout 最终数据 endl;for (int i 0; i 6; i) {cout data[i] ;}cout endl;return 0;
}
输出结果 第二种案例 #includeiostream
using namespace std;int main() {int data[6] { 6,5,9,7,2,8 };cout 原始数据 endl;for (int i 0; i 6; i) {cout data[i] ;}cout endl;cout ----------- endl;//第1次排序后的结果是//5 6 7 2 8 9//第2次排序后的结果是//5 6 2 7 8 9//第3次排序后的结果是//5 2 6 7 8 9//第4次排序后的结果是//2 5 6 7 8 9for (int i 5; i 0; i--) {int flag 0;for (int j 0; j i; j) {if (data[j] data[j 1]) {int temp 0;temp data[j];data[j] data[j 1];data[j 1] temp;flag;}}if (flag 0)break;}cout 最终数据 endl;for (int i 0; i 6; i) {cout data[i] ;}return 0;
}
输出结果