本文主要是介绍【算法设计练习题】冒泡法对一组随机长度的数组进行排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述
给定一个正整数序列a1… ,利用冒泡排序(比较相邻的元素,若第一个比第二个大,就交换)将序列升序排序,输出排序后的结果。ai<10^9
样例输入:1 5 4 3
样例输出:1 3 4 5
代码(冒泡排序部分参考过严蔚敏数据结构课本里的冒泡排序代码)
#include<stdio.h>int main()
{int t,i,j;int a[10000]={0};int n=1;while(~scanf("%d",&a[n])) //当先后输入“enter,ctrl+z,enter"时,表示输入完毕 n++;int m;for(i=1;i<=n-1;i++) { m=i;for(j=i+1;j<=n-1;j++){if(a[m]>a[j]) m=j; }if(m!=i){t=a[i];a[i]=a[m];a[m]=t;}}for(i=1;i<n;i++){printf("%d ",a[i]);}printf("\n");return 0;}
难点分析:对我自己而言,难度在于如何在不知道数组长度的情况下输入数据。在程序运行时,输入数据后,要按“enter,ctrl+z,enter”后才能输出结果。
这篇关于【算法设计练习题】冒泡法对一组随机长度的数组进行排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!