基于C语⾔的冒泡排序和打擂台算法
冒泡排序:
假设有n个数,乱序排列,将n个数有序输出。
冒泡排序基本思路:每次将相邻的两个数进⾏⽐较,将⼩或者⼤的调到前⾯。由此得到规律,n个数需要n-1趟⽐较。在第⼀趟⽐较中要进⾏n-1次两两⽐较,在第j趟⽐较,需要进⾏n-j次两两⽐较。
以10个数为例,需要⽐较9趟,第⼀趟⽐较时,两两⽐较需要9次,第⼆趟⽐较,两两⽐较需要9次,以此类推。
#include<stdio.h>
int main()
{
int a[10];//定义数组
int i,j,t;//定义变量
printf("input 10 numbers:\n");
for(i=0;i<10;i++)//将数字输⼊到数组中
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)//⽐较9趟
{
for(i=0;i<9-j;i++)// 在每⼀趟中进⾏9-j次⽐较
{
if(a[i]>a[i+1])//相邻两个数⽐较
{
t=a[i];a[i]=a[i+1];a[i+1]=t;//交换数值
columns怎么读英语
}
}
冒泡排序代码c语言
}
printf("the sorted numbers :\n");
for(i=0;i<10;i++)//打印数组
printf("%d\n",a[i]);
printf("\n");
return0;
}
循环分析:
当执⾏外循环第1次循环时,j=0,然后执⾏第1次内循环,此时i=0,在if语句中a[i]和a[i+1]⽐较,就是
黄页b2b
a[0]和a[1]⽐较,执⾏第2次内循环时i=1,此时⽐较的是a[1]和a[2],依次类推。在执⾏最后⼀次内循环时,i=8,a[8]和a[9]⽐较,此时第1次外循环结束。
当执⾏第2次外循环时,j=1,开始第2次内循环,此时j=1因此此时的内循环条件时i<8,即i从0到7,要执⾏内循环8次。其余类推。
打擂台算法:
给出⼀个3*4的矩阵,求出最⼤值,以及所在的⾏号和列号。
打擂台算法思路:先⼀个⼈在擂台上,然后第⼆个⼈上去⽐较,胜者留在擂台上,直到最后⼀个⼈上台⽐武,最后留在擂台上的为胜者。
代码:
#include<stdio.h>
int main()
{
css如何设置图片大小int i,j,row=0,colum=0,max;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};//定义数组并赋值
max=a[0][0];//先认为a[0][0]最⼤
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
九宫格滑块拼图解法
if(a[i][j]>max)//如果某元素⼤于max,就取代max的原值
{git是什么意思中文
max=a[i][j];
row=i;//记下此元素的⾏号
colum=j;//记下此元素的列号
}
printf("max=%d\n row=%d\n colum=%d\n",max,row,colum);
return0;
}
代码分析:
先让a[0][0]作擂主,把它的值赋给变量max,max⽤来存放在⼤值。让a[0][1]与max⽐较,如果a[0][1]⼤于max,将它的值赋给max,然后依次处理,直到最后⼀个值⽐较完,输出max,此时max就是最⼤值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。