程序如下:
#include <stdio.h>
int main ()
{
int a[10];
int i, j, t;
printf ("请输入十个数:\n");
for (i = 0; i < 10; i++)
{
printf ("a[%d]=", i+1);
scanf ("%d",&a[i]);
}
for (j = 0;j < 9; j++)
for (i = 0; i < 9 - j; i++)
if (a[i] > a[i+1])
{
t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
printf ("由小到大的顺序为:\n");
for (i = 0; i < 10; i++)
{
printf ("%d,",a[i]);
}
printf ("\n");
return 0;
}
运行结果
请输入十个数:
a[1]=7
a[2]=8
a[3]=9
a[4]=6
a[5]=5
a[6]=4
a[7]=1
a[8]=2
a[9]=3
a[10]=99
由小到大的顺序为:
1,2,3,4,5,6,7,8,9,99。
冒泡排序算法的原理如下:
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
扩展资料:
冒泡排序的思想:
首先,从表头开始往后扫描数组,在扫描过程中逐对比较相领两个元素的大小。若相邻两个元素中,前面的元素大于后面的元素,则将它们互换, 称之为清去了一个逆序。
在扫描过程中,不断地将两相邻元素中的大者往后移动,最后就将数组中的最大者换到了表的最后,这正是数组中最大元素应有的位置。
然后,在剩下的数组元素中(n-1个元素)重复上面的过程,将次小元素放到倒数第2个位置。不断重复上述过程,直到剩下的数组元素为0为止,此时的数组就变为了有序。
假设数组元素的个数为西,在最坏情况下需要的比较总次数为: (n-1)+(n- 2)...+2+1)- n(n-1)/2。
参考资料来源:百度百科-冒泡排序
程序如下:
#include <stdio.h>
int main ()
{
int a[10];
int i, j, t;
printf ("请输入十个数:\n");
for (i = 0; i < 10; i++)
{
printf ("a[%d]=", i+1);
scanf ("%d",&a[i]);
}
for (j = 0;j < 9; j++)
for (i = 0; i < 9 - j; i++)
if (a[i] > a[i+1])
{
t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
printf ("由小到大的顺序为:\n");
for (i = 0; i < 10; i++)
{
printf ("%d,",a[i]);
}
printf ("\n");
return 0;
}
运行结果
请输入十个数:
a[1]=7
a[2]=8
a[3]=9
a[4]=6
a[5]=5
a[6]=4
a[7]=1
a[8]=2
a[9]=3
a[10]=99
由小到大的顺序为:
1,2,3,4,5,6,7,8,9,99。
扩展资料
//从头向尾遍历,将最大数(相对)沉入尾部(相对)
void BubbleSort1(int *arr,int sz){int i = 0;
int j = 0;assert(arr);
for(i=0;i<sz-1;i++){for(j=0;j<sz-i-1;j++){
if(arr[j]>arr[j+1]){int tmp = arr[j];
arr[j] = arr[j+1];arr[j+1] = tmp;
}}
}
//从尾向头遍历,将最大数(相对)冒泡到头部(相对)
void BubbleSort2(int *arr,int sz){int i = 0;
int j = 0;assert(arr);
for(i=0;i<sz-1;i++){for(j=sz;j>i;j--){
if(arr[j]>arr[j-1]){int tmp = arr[j];
arr[j] = arr[j-1];arr[j-1] = tmp;
}}
}
}参考资料来源:百度百科 - 冒泡排序
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
参考代码:
C语言:编写一个程序用冒泡排序实现升序排列
int main (){ int a[10];int i, j, t;printf ("请输入十个数:\\n");for (i = 0; i < 10; i++){ printf ("a[%d]=", i+1);scanf ("%d",&a[i]);} for (j = 0;j < 9; j++)for (i = 0; i < 9 - j; i++)if (a[i] > a[i+1]){ t = a[i];a...
C语言:采用冒泡排序方法,对10个数按由小到大的的顺序排序
int main(){ int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};\/\/排序 for(i=1;i<10;i++)\/\/外循环控制排序趟数,n个数排n-1趟 { for(j=0;j<10-1;j++)\/\/内循环每趟比较的次数,第j趟比较n-i次 { if(a[j]>a[j+1])\/\/相邻元素比较,逆序则交换 { t=a[j];a[j...
c语言编程:对10个数冒泡排序(升序)。
int main(){ int number[10] = {95, 45, 15, 78, 84, 51, 24, 12,34,23};for (int j = 0; j < 9; j++)for (int i = 0; i < 9 - j; i++) { if(a[i] > a[i + 1]) { int temp = a[i];a[i] = a[i + 1];a[i + 1] = temp; } } fo...
c语言。编写一个冒泡排序算法s使用指针将n个整型数据按升序排序?
include<stdio.h> int main(){ int a[111],t;int *p=a;int n;scanf("%d",&n);for(p=a;p<a+n;p++)scanf("%d",p);p=a;for(int i=0;i<n;i++)for(int j=0;j<n-1-i;j++)if(p[j]>p[j+1]){ t=p[j];p[j]=p[j+1];p[j+1]=t;} for(int i=0;i<n;i...
关于C语言中结构体的问题,要设计一个程序,用冒泡法对学生情况表按成绩从...
排序程序如下:struct student sortPop(struct student aa[],int n){ int i,j;float temp;for(i =0;i<n-1;i++){ for(j=0;j<n-1-i;j++){ if(aa[j].grade > aa[j+1].grade)\/\/升序排列 { temp=aa[j].grade;aa[j].grade=aa[j+1].grade;aa[j+1].grade=temp;} } } ...
用函数编程实现在一个未排序的长度为20的数组按升序排序
常用的c语言排序算法主要有三种即冒泡法排序、选择法排序、插入法排序。一、冒泡排序冒泡排序:是从第一个数开始,依次往后比较,在满足判断条件下进行交换。代码实现(以升序排序为例)include<stdio.h>int main(){ int array[20] = { 6,9,7,8,5,3,4,0,1,2 , 21,23, 18, 33, 28,29,...
c 语言:采用冒泡法,将成绩按照从高到低的顺序进行排列。
int main(){ int n,i,j,k,a[100],max=-1,min=999;srand((unsigned) time(NULL)); \/\/用时间做种,每次产生随机数不一样 scanf("%d",&n);printf("%d个随机成绩:\\n",n);for (i=0;i<n;i++){ a[i]=rand()%61+40; \/\/产生40-100的随机数 printf("%d ",a[i]);if(max...
用c语言冒泡排序方法,对学生成绩从高到低进行排序。 拜托大神们帮忙_百 ...
void bubble_sort(int a[], int n){int i, j, temp;for (j = 0; j < n - 1; j++)for (i = 0; i < n - 1 - j; i++)if(a[i] > a[i + 1]){temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;} } int main(){int number[10] = {95, 45, 15, 78, 84, ...
C语言:写一函数,用“冒泡法”对输入的10个字符按由小到大顺序排列
冒泡排序需要用到两层循环,第一层循环遍历数组中的元素,第二层则进行两两比较,如果顺序不对就要对其进行换位,直到排序完成:4、最后执行程序观察结果,按下crtl+F5弹出程序,随意输入10个数,按下回车键执行结果,此时就可以看到排序后的结果了。以上就是c语言冒泡排序程序的演示:...
C语言编程:将输入的N个整数采用冒泡排序按照从小到大的顺序排列并且输出...
void BubbleSort(int L[]) { \/\/ 对顺序表L作冒泡排序 int i,j,fini = 0;for (i = 1; i < n && !fini; i++) { fini = 1;for (j = 1; j <= n-i; j++)if (L[j] > L[j+1]) { L[0] = L[j];L[j] = L[j+1];L[j+1] = L[0];fini = 0;} } } ...