c语言冒泡排序
第一个for是代表从数组的 第前一个元素(设为j)循环到数组最后一个元素。
第二个for代表从j+1个(也就是第j+1个元素到最后一个元素,每一个元素和第j个比较大小,然后换位。
举个例子:比如现在是for到第一个元素,然后第二个for到的第一个的后一个(就是第二个)进行比较,然后换元素。
有什么不懂再问喔
C语言冒泡排序法
冒泡排序每一趟排序把最大的放在最右边。
比如:
87 12 56 45 78
87和12交换:12 87 56 45 78
87和56交换: 56 87 45 78
87和45交换: 45 87 78
87和78交换: 78 87
到此第一趟排序结束,接下来的每一趟排序都是这样。
#include《stdio.h》
void Print(int *num, int n)
{
int i;
for(i = 0; i 《 n; i++)
printf(“%d “, num);
puts(“\n“);
return;
}
void Bubble_Sort(int *num, int n)
{
int i, j;
for(i = 0; i 《 n; i++)
{
for(j = 0; i + j 《 n – 1; j++)
{
if(num)
{
int temp = num;
num;
num = temp;
}
Print(num, n);
}
}
return;
}
int main()
{
int num = {87, 12, 56, 45, 78};
Bubble_Sort(num, 5);
return 0;
}
用c语言编写冒泡排序算法
#include《stdio.h》
void main(){
int i,j,score,count=0,temp,sum=0;
double avg;
for(i=0;i《10;i++){ //输入10个学生的成绩,并求着10个学生的成绩总和
printf(“请输入第%d个学生的成绩:“,(i+1));
scanf(“%d“,&score);
sum+=score;
}
avg=sum*1.0/10; //求着这10个学生成绩的平均值
for(i=0;i《10;i++){ //统计小于平均分的学生人数
if(score《avg){
count++;
}
}
for(i=0;i《10;i++){ //使用冒泡排序对这10个学生的成绩逆序排序
for(j=0;j《9-i;j++){
if(score){
temp=score;
score;
score=temp;
}
}
}
printf(“最高成绩:%d分,平均成绩:%.2f分,低于平均成绩的人数是:%d人!\n“,score,avg,count);
}
在C语言中,冒泡排序是怎样做的如题 谢谢了
main() { int i,j,temp; int a的位置,其余的气泡均已排好序时,则仍需做n-1趟扫描才能完成排序。 【例】对初始关键字序列:94,10,12,18,42,44,45,67就需七趟扫描。 ②造成不对称性的原因 每趟扫描仅能使最重气泡“下沉“一个位置,因此使位于顶端的最重气泡下沉到底部时,需做n-1趟扫描。 ③改进不对称性的方法 在排序过程中交替改变扫描方向,可改进不对称性
C语言中冒泡排序法(又称起泡排序法)得具体程序
冒泡法我是这样理解的,便于掌握和记忆。首先冒泡是n长度的数组开始的两位开始,逐位双双比较一直到最后两个,所以最外循环比较了n-1次。第一个数比较了以后就不比了,从第二个开始,一直比较到数组末尾,于是内循环的起始位置不同,每次都是外侧i的值加0,也就是i。但结束的限制和外层循环是相同的。于是写法为for (i=0;i《n-1;i++)
{
for(j=i;j《n-1;j++)
C语言:编写一个程序用冒泡排序实现升序排列
1、首先打开一个空白的C语言文件,首先先定义一组待排序的数列以及各个变量,接着就是用来处理排序的逻辑:
2、冒泡排序的逻辑是一组数从第一个数值开始,如果相邻两个数的排列顺序与期望不同,则将两个数的位置进行交换,重复这样的过程直到最后一个数不需要交换则排序完成,如果有N个数需要排序,则需要进行(N-1)趟的比较:
3、最后编译运行程序,观察最终排序的结果,可以看到数字被从小到大的排列好了,以上就是C语言冒泡排序实现的过程:
c语言冒泡排序法
(1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
(2)实例:
(3)代码解释:
#include《stdio.h》
int main()
{
int a;
int i,j,t,temp;//temp记录临时中间值
printf(“请输入10个数:“);
for (i=0;i《10;i++)
{
scanf(“%d“,&a);//记录输入的十个数
}
for (j=1;j《=9;j++)
{
t=10-j;
for (i=0;i《t;i++)
{
if (a) {
// 交换两数的位置
temp=a;
a;
a=temp;
}
}
}
for (i=0;i《=9;i++)
{
printf(“%d\t“,a);
}
return 0;
}
望采纳!
C语言冒泡排序法是什么
冒泡排序法,是C语言常用的排序算法之一,意思是对一组数字进行从大到小或者从小到大排序的一种算法。
具体方法是:
相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换。重复这样的过程,一直到最后没有数值需要交换,则排序完成。
C语言常见的排序算法:
1、冒泡排序
基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。
2、快速排序
基本思想:选取一个基准元素,通常为数组最后一个元素(或者第一个元素)。从前向后遍历数组,当遇到小于基准元素的元素时,把它和左边第一个大于基准元素的元素进行交换。在利用分治策略从已经分好的两组中分别进行以上步骤,直到排序完成。
3、直接插入排序
基本思想:和交换排序不同的是它不用进行交换操作,而是用一个临时变量存储当前值。当前面的元素比后面大时,先把后面的元素存入临时变量,前面元素的值放到后面元素位置,再到最后把其值插入到合适的数组位置。
4、直接选择排序
基本思想:依次选出数组最小的数放到数组的前面。首先从数组的第二个元素开始往后遍历,找出最小的数放到第一个位置。再从剩下数组中找出最小的数放到第二个位置。以此类推,直到数组有序。
以上内容参考 百度百科-排序算法、百度百科-c语言冒泡排序
C语言冒泡排序法是怎么排序的
C语言冒泡排序法的排序规则:
将被排序的记录数组R垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上“飘浮“。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。
-
初始 R为无序区。
-
第一趟扫描 从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。
即依次比较(R上。
-
第二趟扫描 扫描R。
扫描完毕时,“次轻“的气泡飘浮到R变为新的有序区。
c语言冒泡排序的编程为:
#include 《stdio.h》
void sort(int *a,int len)
{int i=0;
int j;
int t;
for(i=0;i《len-1;i++)
{
for(j=0;j《len-i-1;j++)
{
if(a)
{
t=a;
a;
a=t;
}
}
}
}
int main(int argc, char *argv)
{
int a={
-999,2,3,77,12,88,0,-8,99,100
};
int i=0;
sort(a,10);
for(i=0;i《10;i++)
{
printf(“%d “,a);
}
return 0;
}