写一个函数,用“起泡法”对输入的10个字符按由小到大顺序排列

算法基础 专栏收录该内容
33 篇文章 2 订阅

写一个函数,用“起泡法”对输入的10个字符按由小到大顺序排列(C语言)

题目要求:如标题,起泡法是一种重要的、基本的的排序算法

思路:

  1. 每次将相邻两个数比较,将较小的调到前面
  2. 若有6个数:9,8,5,4,2,0。第一次先将最前面的两个数8和9对调,见图1;第2次将第2和第3个数(9和5)对调…如此共进行5次,得到8-5-4-2-0-9。可以看到,最大的数9已经“沉底”成为最下面的一个数,而小的数“上升”,最小的数0已向上“浮起”一个位置。经过第1趟(共5次比较和交换)后,得到最大的数9
  3. 然后进行第2趟比较,对余下的前面5个数(8,5,4,2,0)进行新一轮比较,使得第二大的数“沉底”,见图2。经过第2趟(共4次比较和交换)后,得到第二大的数8
  4. 按此规律,对6个数要进行5趟比较。第1趟共比较5次,第2趟共比较4次,第5趟只须比较1次
  5. 此时,如果有n个数,则要进行n-1趟比较。第一趟共比较n-1次,第j趟共比较n-j次,第n-1趟只须比较1次
  6. 这个过程如同气泡一样,每经过一趟,最小的数“上升”一位。最后升到第一个数

图1

图2

以下是具体代码:

#include <stdio.h>
#include <string.h>
int main()
{
    void bubble(char str[]);
    char string[10];
    printf("please enter a string: ");
    gets(string);
    bubble(string);
    return 0;
}


void bubble(char str[])
{
    int i,j;
    char temp;
    for(i=0;i<=8;i++)
        for(j=0;j<=8-i;j++)
        {
            if(str[j]>str[j+1])
            {
                temp=str[j];
                str[j]=str[j+1];
                str[j+1]=temp;
            }
        }
    printf("The sorted strings: ");
    puts(str);
}
  • 2
    点赞
  • 0
    评论
  • 6
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
<p> <span style="font-size:14px;color:#337FE5;">【为什么学爬虫?】</span> </p> <p> <span style="font-size:14px;">       1、爬虫入手容易但是深入较难如何出高效率爬虫如何出灵活性高可扩展爬虫都是一项技术活。另外在爬虫过程中经常容易遇到被反爬虫比如字体反爬、IP识别、验证码等如何层层攻克难点拿到想要数据这门课程你都能学到!</span> </p> <p> <span style="font-size:14px;">       2、如果是作为一个其他行业开发者比如app开发web开发学习爬虫能让你加强技术认知能够开发出更加安全软件和网站</span> </p> <p> <br /> </p> <span style="font-size:14px;color:#337FE5;">【课程设计】</span> <p class="ql-long-10663260"> <span> </span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 一个完整爬虫程序无论大小总体来说可以分成三个步骤分别是: </p> <ol> <li class="" style="font-size:11pt;color:#494949;"> 网络请求:模拟浏览器行为从网上抓取数据。 </li> <li class="" style="font-size:11pt;color:#494949;"> 数据解析:将请求下来数据进行过滤提取我们想要数据。 </li> <li class="" style="font-size:11pt;color:#494949;"> 数据存储:将提取到数据存储到硬盘或者内存中。比如mysql数据库或者redis等。 </li> </ol> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 那么本课程也是照这几个步骤循序渐进进行讲解带领学生完整掌握每个步骤技术。另外因为爬虫多样性在爬取过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节来提高爬虫程序灵活性分别是: </p> <ol> <li class="" style="font-size:11pt;color:#494949;"> 爬虫进阶:包括IP代理多线程爬虫图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 </li> <li class="" style="font-size:11pt;color:#494949;"> Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 </li> </ol> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 通过爬虫进阶知识点我们能应付大量反爬网站而Scrapy框架作为一个专业爬虫框架使他可以快速提高我们编爬虫程序效率和速度。另外如果一台机器不能满足你需求我们可以分布式爬虫让多台机器帮助你快速爬取数据。 </p> <p style="font-size:11pt;color:#494949;">   </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 从基础爬虫到商业化应爬虫本套课程满足您所有需求! </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <br /> </p> <p> <br /> </p> <p> <span style="font-size:14px;background-color:#FFFFFF;color:#337FE5;">【课程服务】</span> </p> <p> <span style="font-size:14px;">专属付费社群+定期答疑</span> </p> <p> <br /> </p> <p class="ql-long-24357476"> <span style="font-size:16px;"><br /> </span> </p> <p> <br /> </p> <p class="ql-long-24357476"> <span style="font-size:16px;"></span> </p>
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值