冒泡排序 C语言(从大到小排序)

冒泡排序 C语言(从大到小排序)1一维数组2冒泡的概念3代码实现1一维数组一维数组:存放字符型数据的数组一维数组的定义首先arr[5]5是数组的长度也就是大小但是我们在访问数组元素的地址时候不存在有arr[5]也就是说定义arr[5]只是为了让你知道这个数组大小是5而已我们在访问数组的元素地址时候是用下标来访问的(从0开始)上述的两种定义的方法都可以适用在我们的元素长度和数组大小对不上时他们自动补充元素我们有个这些概念之后后面讲…

大家好,欢迎来到IT知识分享网。

1 一维数组

2 冒泡的概念

3 代码实现

1一维数组

一维数组 :存放字符型数据的数组

一维数组的定义

冒泡排序 C语言(从大到小排序)

首先 定义int arr[5](int类型的一维数组 ), 5 是数组的长度 也就是大小 但是我们 在访问数组元素的地址 时候, 不存在 有 arr[5]

也就是说 定义arr[5]只是 为了 让你知道这个数组大小是 5 而已    我们在访问 数组的元素地址时候  是用下标来访问的 (从0开始 )  上述的两种定义的方法 都可以适用 在我们的元素长度和数组大小对不上时 他们自动补充 元素  我们有个这些概念之后  后面讲到的理解起来 都不会很吃力

2 冒泡 的概念

冒泡排序 C语言(从大到小排序)

 拿图中的五个数相比较   只要满足 前<后   我们就可以进行 交换  也就是 用下标法来比较   

我们可以得出 我们拿五个数比较 第一轮 比较四次 得出 最大值  除去最大值 就是第二轮要比较的数   第二轮就是要比较 (比较的数量-1)就可以得本轮的最大值   其实第五轮 是没有比较的 因为只有一个数 (只是为了更直观 看到  全部 )

3 代码实现 

计算 数组大小的 关键字   sizeof  

计算公式 

 int  len=sizeof(arr)/sizeof(arr[0]);

  函数声明

    void scan(int arr[],int len);
    void MaoPao(int arr[],int len);
    void print(int arr[],int len);

函数声明 只是为了 养成 良好的 编程习惯  

 输入函数 

//输入函数
    void scan(int arr[],int len)
    {
     for(int i=0;i<len;i++)
     {
     scanf("%d",arr+i);//输入五位数
     }

因为 数组名就是 入口 地址  所以 我不用常规的方式 来写  输入函数    其实都一样的 

冒泡排序 

     //冒泡 排序 函数
    void MaoPao(int arr[],int len)
    {

     int temp;

     for(int i=0;i<len-1;i++)
       {

     for(int j=0;j<len-i-1;j++)
     {
         if(arr[j]<arr[j+1])//满足条件 交换 到了下一次  并且 相应改变 位置
         {
             temp=arr[j]; //开始交换 
             arr[j]=arr[j+1];
             arr[j+1]=temp;


         }

     }

       }

    }

 i 是轮次 我拿了 五个 数 可以发现 我只用了 四轮 就完成了 大小排序    

j是 比较的次数  第一轮  用了 四次 (最开始有五个数 )所以 要 长度-1-i 

如果 不减i的话 会导致  每一轮的比较次数都是一样的  这个要特别注意 

输出 函数 

  
    void print(int arr[],int len)
    {
    printf("大小排序是:\n");
    for(int i=0;i<len;i++)
     {
      printf(" %d",*(arr+i));

     }

    }

这里再说一次  输入 和输出 能用 arr+i 和 *(arr+i) 写的原因   常规写法 应该分别是 &arr[I] 和 arr[i]       我们这里要知道一个概念  数组名就是数组 的入口地址(首地址)

主函数 的 调用 

void main(void)//无参主函数 
    {
    int arr[5];
    int len;
    len=sizeof(arr)/sizeof(arr[0]);//计算数组大小

    scan(arr,len);//输入 
    MaoPao(arr,len);//排序
    print(arr,len);//输出 

    }

最后结果

冒泡排序 C语言(从大到小排序)

           冲冲冲冲冲冲 !!!!!!!!!!!!!!!!!!!!!!!!

                                               最 后 感 谢 大 家 的 阅 读  

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22874.html

(0)
上一篇 2023-12-13 17:00
下一篇 2023-12-21 20:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信