十大经典排序算法之冒泡排序【一】
2020-04-18 07:21
483 查看
【冒泡排序】(Bubble Sort)
a) 原理
冒泡排序是最简单的排序算法。它依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来,它重复的查询所要排序的数列。查询数列的工作直到不需要再进行交换元素即停止。排序过程中越小的元素经过交换依次冒泡浮岛数列的始端,由此得名冒泡。
b) 演示动态图
c) 算法步骤
l 比较相邻元素。如果前者比后者大,则进行交换;
l 依次查询数列中相邻元素,并进行比较,因此,一轮查询后,最大元素位于末端;
l 针对剩余数列元素重复上述查询比较工作;
l 重复上述步骤,直到数列排序完成。
d) 代码实现
1 #include <iostream> 2 using namespace std; 3 //函数声明 4 void BubbleSort(int[],int);//冒泡排序 5 void ShowArray(int[],int);//打印 6 7 //主函数 8 int main() 9 { 10 int array_a[] = {5,6,8,2,4,62,31,58,94,50,16}; 11 int len = sizeof(array_a)/sizeof(array_a[0]); 12 //打印数组 13 cout << "原始数组: "; 14 ShowArray(array_a,len); 15 16 //1-冒泡排序 17 BubbleSort(array_a,len); 18 //打印数组 19 cout << "【冒泡】排序后数组: "; 20 ShowArray(array_a,len); 21 22 return 0; 23 } 24 //函数实现之打印数组 25 void ShowArray(int array_a[],int len) 26 { 27 28 for(int i=0;i<len;i++) 29 { 30 cout << array_a[i] << " "; 31 } 32 cout << endl; 33 } 34 //函数实现之冒泡排序:分为外层和内层; 35 void BubbleSort(int array_a[],int len) 36 { 37 for (int i=0;i<len-1;i++) //外层控制比较的轮数; 38 { 39 for (int j=0;j<len-i-1;j++)//内层控制每轮比较的次数; 40 { 41 if (array_a[j]>array_a[j+1]) 42 { 43 int temp; 44 temp = array_a[j]; 45 array_a[j] = array_a[j+1]; 46 array_a[j+1] = temp; 47 } 48 } 49 } 50 }
参考博客:https://www.cnblogs.com/onepixel/articles/7674659.html,再次感谢!
原文出处:https://www.cnblogs.com/xdak/p/10957844.html
相关文章推荐
- 用JavaScript实现十大经典排序算法--冒泡排序
- 十大经典排序算法——冒泡排序 (Java、JavaScript、PHP、Python、Go语言实现)
- 【归纳整理】十大经典排序算法的简单C++实现
- 十大经典排序算法最强总结(含Java代码实现)
- 十大经典排序算法
- 十大经典排序算法(动图演示)
- C#实现所有经典排序算法(选择排序 冒泡排序 快速排序)
- 超详细十大经典排序算法总结
- JavaScript十大经典排序算法
- 十大经典排序算法
- Java基础35-十大经典排序算法
- 十大经典排序算法
- 十大经典排序算法
- 十大经典排序算法最强总结(转载)
- 十大经典排序算法——希尔排序 (Java、JavaScript、PHP、Python、Go语言实现
- C#实现所有经典排序算法(选择排序,冒泡排序,快速排序,插入排序,希尔排序)
- 十大经典排序算法
- 十大经典排序算法(含JAVA代码实现)
- 先码后看 十大经典排序算法最强总结(含Java代码实现) 侵立删
- 作为程序员,你一定要知道的十大经典排序算法!(详细解析)