C语言排序 C语言冒泡排序算法(Bubble Sort)

作者:国际小甜 | 创建时间: 2023-03-25
C语言排序 C语言冒泡排序算法(Bubble Sort)

操作方法

冒泡排序原理: 设要排序的数据记录到一个数组中,把关键字较小的看成“较轻”的气泡,所以就应该上浮。从底部(数组下标较大的一端)开始,反复的从下向上扫描数组。进行每一遍扫描时,依次比较“相邻”的两个数据,如果“较轻”的气泡在下面,就要进行交换,把它们颠倒过来。(图片取自互联网)

具体实现过程:第一步 输入数据 你可以直接将你所需要的数据存入数组,如int a[5] = {84,83,88,87,61}; 也可以通过循环输入 for(i = 0 ; i< n ;i++) { scanf("%d",&a[i]); } 来实现数据输入数组;

具体实现过程:第二步 写循环 冒泡排序是从最低部扫描(数组下标大的一端);所以内部循环应该从数组下标较大的一方开始 for(j = n - 1 ; j > i ; j--) 内部循环确定以后,写外部循环; for(i = 0; i < n ; i++) for(j = n - 1 ; j > i ; j--) // j>i的是扫描第一遍以后,下标最小的一位数,已经变成最大的一位数

具体实现过程:第二步 写交换 if(a[j - 1] < a[j]) { temp = a[j - 1]; a[j - 1]=a[j]; a[j]=temp; }

C语言实现: #include <stdio.h> int main() { int a[5] = {84,83,88,87,61}; int i,j; int temp; printf("按从大到小排序!\n"); int n = 5 ;//数组最大的下标 for(i = 0; i < n ; i++) for(j = n - 1 ; j > i ; j--) { if(a[j - 1] < a[j]) { temp = a[j - 1]; a[j - 1]=a[j]; a[j]=temp; } } for(i = 0 ; i < n ; i++) { printf("%d ",a[i]); } return 0; }

运行程序,成功截图如下;

气泡排序的时间复杂度为0(n^2);

温馨提示

个人,如有不对,请多多指教。如有侵犯,请于我联系,立马解决。仅供参考使用,谢谢!
点击展开全文

更多推荐