问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言:编写一个程序用冒泡排序实现升序排列

发布网友 发布时间:2022-04-20 00:03

我来回答

5个回答

热心网友 时间:2022-04-24 01:04

程序如下:

#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。

参考资料来源:百度百科-冒泡排序

热心网友 时间:2022-04-24 02:22

1、首先打开一个空白的C语言文件,首先先定义一组待排序的数列以及各个变量,接着就是用来处理排序的逻辑:

2、冒泡排序的逻辑是一组数从第一个数值开始,如果相邻两个数的排列顺序与期望不同,则将两个数的位置进行交换,重复这样的过程直到最后一个数不需要交换则排序完成,如果有N个数需要排序,则需要进行(N-1)趟的比较:

3、最后编译运行程序,观察最终排序的结果,可以看到数字被从小到大的排列好了,以上就是C语言冒泡排序实现的过程:

热心网友 时间:2022-04-24 03:56

程序如下:

#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;

}

}

}

}

参考资料来源:百度百科 - 冒泡排序

热心网友 时间:2022-04-24 05:48

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

参考代码:

#include <stdio.h>
#include<stdlib.h>
int main()

int a[5],i,j;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
for(j=0;j<3-i;j++)
if(a[j]>a[j+1]){
a[j]=a[j]+a[j+1];
a[j+1]=a[j]-a[j+1];
a[j]=a[j]-a[j+1];
}
for(i=0;i<5;i++)
printf("%d ",a[i]);
return 0; 
}
/*
5 42 165 1 9
1 5 42 165 9
*/

热心网友 时间:2022-04-24 07:56

#include <stdio.h>
void main()
{
//用指针实现10个数的冒泡排序(从小到大)
int i,j,*p,temp,arr[10];
p=arr;
printf("请输入10个数字:");
for(i=0;i<=9;i++)
scanf("%d",p+i);
printf("你输入的数字为:");
for(i=0;i<=9;i++)
printf("%d ",*(p+i));
printf("\n");
for(i=0;i<=9;i++)
for(j=0;j<=9-i;j++)
if(*(p+j)>*(p+j+1))
{
temp=*(p+j+1);
*(p+j+1)=*(p+j);
*(p+j)=temp;
}
printf("排序后的数字为:");
for(i=0;i<=9;i++)
printf("%d ",*(p+i));
printf("\n");
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 请编程实现一个冒泡排序算法? 虚拟定位精灵企业微信打卡会被发现吗 宝宝感冒打喷嚏流鼻涕咳嗽有点发烧该吃什么药? 2岁宝宝咳嗽两天后,第二天开始流鼻涕,然后晚上又... 四岁宝宝打喷嚏流鼻涕发烧咳嗽吃什么药 宝宝两岁半发烧38度多点,有点流鼻涕应该吃点什么药好 宝宝鼻塞流鼻涕,发烧吃什么药好的快 宝宝感冒发烧流鼻涕吃什么食物为好 两个多月的宝宝感冒、发烧、流鼻涕,最好吃些什么药 十个月大宝宝流鼻涕发烧吃什么好 2021内蒙古公务员考试常识-新录用公务员试用期满考... 政府办工作者个人述职报告 什么叫述职报告 求一份个人述职报告 企业微信打卡用虚拟定位会发现吗? 手机虚拟定位打卡企业微信会被发现吗? 国家统计局能查哪些数据 发达国家城市化进程中的经验教训在哪些? 在国家统计局网站怎么查询国内生产总值的数据 国家统计局:中国常住人口城镇化率历年统计数据(19... 请编程实现一个冒泡排序算法?(.net) c语言。编写一个冒泡排序算法s使用指针将n个整型数... C语言冒泡排序法 c语言冒泡排序的编程 c语言编程:对10个数冒泡排序(升序)。 C语言:编写一个程序,实现冒泡排序,将输入的n个... 用c#编写一个冒泡法排序的程序 写一个函数实现冒泡排序功能 已知整数数组int [] array,请编程实现一个冒泡排... C语言编程 请根据自己的理解编写冒泡排序算法,数... 高德地图车机版离线地图怎么装进车机 高德地图车机版安装方法 离线地图数据怎么装进车机 车机版离线高德地图导航下载后无法使用 捷途X70puls风版高德地图车机版怎么装到车上 C语言冒泡排序法代码 内排序算法问题:编程实现冒泡排序,并输出第3次冒... 我车是CS75,2017款我用苹果8×怎么下载高德地图车机版 C++编程冒泡排序算法设计及实现,补充在下面 高德地图车机版存储路径 1、请编程实现数组中有5个数,对这个数组进行冒泡...