当前位置:首页 » 编程语言 » c语言冒泡排序

c语言冒泡排序

发布时间: 2022-01-09 20:52:40

c语言冒泡排序(数组)

按照你的要求编写的C语言冒泡排序的程序如下

#include<stdio.h>

intmain(){

inti,j,k,T,n,tmp;

scanf("%d",&T);

for(i=0;i<T;i++){

scanf("%d",&n);

inta[n];

for(j=0;j<n;j++){

scanf("%d",&a[j]);

}

for(j=0;j<n-1;j++){

for(k=0;k<n-1-j;k++){

if(a[k]>a[k+1]){

tmp=a[k];

a[k]=a[k+1];

a[k+1]=tmp;

}

}

for(k=0;k<n;k++){

printf("%d",a[k]);

}

printf(" ");

}

}

return0;

}


运行结果
输入2
输入51044312
输出
4101243
4121043
1241043
1241043
输入10201231224345424523-10
输出
201221235424523-10434
122205424523-10123434
2122024523-1054123434
21222023-104554123434
221220-10234554123434
2212-1020234554123434
22-101220234554123434
2-1021220234554123434
-10221220234554123434

Ⅱ C语言冒泡排序

娄主的问题不是很明确呀!
如果想进行冒泡法排序的话,得使用数组变量才行!
可以修改成这样
#include <stdlib.h>
#include<time.h>
#include<conio.h>
int main(void)
{
int a[50];
int i,j,tmp;
printf("Ten random numbers from 0 to 99\n\n");
randomize();
for(i=0; i<50; i++)
{
a[i]=rand()%100
printf("%4d", a[i]);
}
//对已经产生的50个随机数进行冒泡排序
for(i=1;i<=50;i++)
{
for(j=0;j<=i-1;j++)
{
if(a[j]<a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
for(i=0;i<50;i++)
printf("%d/t",a[i]);
getch();
return 0;
}

Ⅲ c语言 冒泡排序

1、把变量a 改成其他的变量名 ,比如是 temp
2、第二层for循环里面的 if 语句有问题,应该是这样的:
for(j=0;j<=9-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
你的变量 j 写成了 i ,if 下面还差了一对大括号,

Ⅳ C语言冒泡排序。

#include<stdio.h>

void main()

{

int a[10];

int i,j,t;

printf("input 10 numbers: ");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(j=0;j<9;j++) /*进行9次循环 实现9趟比较*/

for(i=0;i<9-j;i++) /*在每一趟中进行9-j次比较*/

if(a[i]>a[i+1]) /*相邻两个数比较,想降序只要改成a[i]<a[i+1]*/

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

printf("the sorted numbers: ");

for(i=0;i<10;i++)

printf(" %d",a[i]);


}

(4)c语言冒泡排序扩展阅读:

冒泡排序算法的运作

1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。

2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。

3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。

4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。

简单的表示

#include <stdio.h>

void swap(int *i, int *j)

{

int temp = *i;

*i = *j;

*j = temp;

}

int main()

{

int a[10] = {2,1,4,5,6,9,7,8,7,7};

int i,j;

for (i = 0; i < 10; i++)

{

for (j = 9; j > i; j--)//从后往前冒泡

{

if (a[j] < a[j-1])

{

swap(&a[j], &a[j-1]);

}

}

}

for (i = 0; i < 10; i++)

{

printf("%d ", a[i]);

}

return 0;

}

参考资料来源:冒泡排序-网络

Ⅳ c语言冒泡排序

第一个for是代表从数组的 第前一个元素(设为j)循环到数组最后一个元素。
第二个for代表从j+1个(也就是第j+1个元素到最后一个元素,每一个元素和第j个比较大小,然后换位。
举个例子:比如现在是for到第一个元素,然后第二个for到的第一个的后一个(就是第二个)进行比较,然后换元素。
有什么不懂再问喔

Ⅵ C语言冒泡排序法代码

冒泡排序是排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。“冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。这里以从小到大排序为例进行讲解。基本思想及举例说明


冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较就,选出最大的数;经过第2轮比较,就选出次大的数,以此类推。下面以对 3 2 4 1 进行冒泡排序说明。

Ⅶ C语言冒泡排序

在后面加上getchar()好了。

Ⅷ c语言冒泡排序法详解

任意两个数作比较,大的放后面,小的放前面,然后大的在和下一个数比较,还是大的放后小的往前,以此类推,直到所有数比完了,然后输出

热点内容
手机服务密码怎么知道 发布:2024-12-27 12:51:44 浏览:465
oraclelinux使用 发布:2024-12-27 12:46:04 浏览:481
相册密码在哪里开 发布:2024-12-27 12:40:29 浏览:270
压缩解压支持库 发布:2024-12-27 12:31:46 浏览:712
php过滤注入 发布:2024-12-27 12:26:48 浏览:842
安卓手机怎么看手机配置 发布:2024-12-27 12:25:54 浏览:34
winccc脚本属性函数 发布:2024-12-27 12:25:15 浏览:61
安卓怎么设置照片格式 发布:2024-12-27 11:50:05 浏览:169
逍遥绝脚本 发布:2024-12-27 11:44:59 浏览:431
我的世界哪个服务器可以1v1 发布:2024-12-27 11:43:37 浏览:934