点击上方“C语言中文社区”,选择“设为星标★

技术干货第一时间送达!

来源:https://blog.csdn.net/zjy18886018024/category_7741145.html

今天给大家分享一些关于C语言的算法,选择排序和冒泡排序。

对于选择排序,首先理解排序的思想。给定一个数组,这种思想首先假定数组的首元素为最大或者最小的。此时就要利用3个变量表示元素的下标。一个表示当前,一个表示找到的最大或者最小的下标,一个用于存放每次循环中最大值的下标。在掌握了程序的基本思想之后,再进行排序。找到最大的下标后赋给每次除非的那个最大的下标。找到之后判断所假设的当前值是否为此次循环的最大值,如果不是,就交换最大 与当前的值,从而将数组以一定的顺序排放,最后写一个循环将结果输出。代码不是很难,所以我就逐步讲解了,只是附上代码,不懂的可以给我留言,我给大家讲解或者有什么不好的地方,我也好修正。

#includevoid main()//主函数{   int a[10];   int i,j,w;   printf("请输入10个数字:\n");    for(i=0;i<10;i++)   scanf("%d",&a[i]);    for(i=0;i<10;i++)  {     for(j=0;j<10;j++)     if(a[i]//进行比较//比较后进行交换{  w=a[i];         a[i]=a[j];           a[j]=w;}  }printf("排序后:\n");        for(i=0;i<10;i++)            printf("%4d",a[i]);              printf("\n");}

结果展示:

接下来是冒泡排序,这个是C语言中最常用的算法之一,因为这个比较容易理解,多数人在他们要进行排序的时候首先使用的就是这个算法。这个算法比较容易理解。对于冒泡排序,主要采用的是相邻数两两进行比较的思想。如果后一个比前一个大或者小,则将其调换位置,直至所有的数都比较完。如果给定一个大小为n的数组,那么需要比较n-1趟,每一趟比较n-1-i次 ,i 表示上次循环中已经比较完的下标。写两个循环判断,如需交换则进行交换,如果不需要交换则进行下两个数的比较,直到所有的数比较完。最后,用一个循环将排序完成后的数全部输出。代码如下:

#include#define N 10void main(){   int a[10];   int i,j,t;   printf("请输入10个数字:\n");    for(i=0;i<10;i++)   scanf("%d",&a[i]);//使用两层循环    for(i=0;i-1;i++)  {     for(j=i+1;j1);j++)     if(a[j]1]){  t=a[j];         a[j]=a[j+1];           a[j+1]=t;}}printf("排序后:\n");        for(i=0;i<10;i++)            printf("%4d",a[i]);              printf("\n");}

结果:

结论浅说:

对于选择排序的分析是很简单的,输入的规模由数组元素决定,基本操作是键值比较A[j]

冒泡排序就是相邻两个数相比较,大数就沉底(或者小数上浮的过程),总共进行了n-1次比较和交换。上面的冒泡算法为了便于算法的实现,所以考虑只使用一个一维数组来存放10个整型数据。排序过程中数据始终在这个数组中(原地操作,不占用额外的空间)。所以该算法的时间复杂度为O(n-1),空间复杂度为O(1)。

精选文章

围观

更新一波资源,请快速领取!

热文

超级干货:Linux常用命令 & 实用命令万字总结!

热文

文件操作之fprintf和fscanf函数

热文

计算机网络基础知识总结

热文

C/C++学习笔记——C提高:指针强化

END

如果您觉得本篇文章对您有帮助请转发给更多的人

顺手点一下“在看”也是对小编最大的支持

c 冒泡排序_C语言中选择排序和冒泡排序相关推荐

  1. Java中选择排序,冒泡排序,插入排序,快速排序

    一:冒泡法排序  //冒泡排序 注:从小到大排    //特点:效率低,实现简单   //思想:每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有元素. 这只是冒泡 ...

  2. java中选择排序和冒泡排序_Java选择排序就是比冒泡排序牛「具体详情,请看此文」...

    什么是选择排序 选择排序原理即是,遍历元素找到一个最小(或最大)的元素,把它放在第一个位置,然后再在剩余元素中找到最小(或最大)的元素,把它放在第二个位置,依次下去,完成排序. 时间复杂度 选择排序的 ...

  3. c语言入门中冒泡排序的例题,选择排序和冒泡排序例题解析(c语言)

    排序算法排序算法 1.简单选择排序简单选择排序 假设有 n 个数,作简单选择排序简单选择排序,按升序排列: 先通过 n-1 次比较,从 n 个值中找出最小值,将它与第一个值交换. 再通过 n-2 次比 ...

  4. 蛮力法查找有序数列c语言,算法——蛮力法之选择排序和冒泡排序c++实现

    这次实现的是蛮力法中的两个例子,选择排序法和冒泡排序法,使用的编译环境是vs2013,下面对这两个算法做一个简单介绍,然后是两个算法的c++实现代码. 选择排序法比较的范围是整个列表,每次扫描结束找出 ...

  5. C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

    C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 1 /*简单交换法排序 2 根据序列中两个记录键值的比较结果来 ...

  6. 选择排序法和冒泡排序法

    选择排序法和冒泡排序法 1.选择排序法(以从小到大排序为例) 算法思想: A.在未排序序列中找到最小(大)元素,存放到排序序列的起始位置 B.从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序 ...

  7. c语言中怎么排序,c语言中的排序方法.doc

    c语言中的排序方法 排序技术 所谓排序,就是要整理的文件中的记录,使之按关键字第增(或第减)的次序排列起来. 常用交换类排序 冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线 ...

  8. Java小结(四)——折半查找、选择排序、冒泡排序

    最常见的一些基本算法,比如折半查找,选择排序,冒泡排序. 折半查找,是它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列     即数组内元素必须是 ...

  9. 排序算法:冒泡排序、插入排序、选择排序、希尔排序

    相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...

最新文章

  1. java 模仿支付成功_Java工程师薪资为何这么高?60W年薪如何轻松拿到手
  2. 单细胞转录组数据整合分析专题研讨会(2019.11)
  3. Linux上端口开放常用命令
  4. 什么时候使用Apache Camel?
  5. Codeforces 552C Vanya and Scales(进制转换+思维)
  6. Node.js与网络:Node.js对TCP、UDP、Socket、HTTP等协议的实现和支持
  7. golang redis 队列删除图片
  8. 深入浅出MFC:《深入浅出MFC》入手基础指南
  9. oracle数据库表格连接数据库,excel中连接表格数据库-excel怎样连接oracle数据库(白痴级提问)...
  10. 领导力教练:世界著名企业教练们的实践心得(原书第3版)
  11. Word2013批量修改图片尺寸
  12. Java异常泄露敏感信息_浅谈“异常信息泄露(应用程序错误)”
  13. 【WiFi】WiFi 2.4G信道国家码对应关系
  14. 一件程序猿T恤的故事
  15. 三表左连接sql语句例子
  16. 计算机基础_001_栈是什么
  17. 自动生成sitemap地图PHP代码
  18. 中国云服务市场已达66亿美元:阿里云、百度智能云等市占率位列前四
  19. Kali WIndows 漏洞利用基础篇 (探索目标主机漏洞)
  20. Chrome 常用翻译/Github工具/提高工作、生产效率插件

热门文章

  1. 计算机基础ABCDEF,计算机应用基础-在线作业abcdef(76页)-原创力文档
  2. 归并排序改良 java_Java 八种排序算法总结
  3. python教程:一篇文章让你理解字符串的格式化
  4. Linux优化不知如何下手?那你的看看这篇文章了
  5. 三角函数公式、诱导公式
  6. opencv cv2.flip()函数(图像翻转、镜像、颠倒)(沿x轴翻转0、沿y轴翻转【正值】、同时沿x轴y轴翻转-【负值】)
  7. pyrealsense2 sensor.get_option_description 报错 RuntimeError: object doesn't support option #14
  8. CSDN博客导出备份工具
  9. PyQt4编程之简短地做出多个选择框
  10. Navicat连接SQL Server报错未发现数据源名称并且未指定默认驱动程序