Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(15) 几种常用的排序算法C实现

嵌入式对于算法的要求不是很高,但面试的时候让你手写排序算法还是有可能的。面试前最好简单过一下。

本文所有代码已经在gcc下通过编译运行测试,结果都是正确的。

1、冒泡排序

算法思想

让数组中相邻两个数字进行比较,如果是升序排列,如果左边的大于右边,则交换,相当于将较大的数往后挪。第一趟有n个数据,需要比较n-1次,可以将最大的数挪到数组最末端,第二趟只有n-1个数据了,只需要比较n-2次…

每一趟可以决出一个数,n个数只要决出n-1个数的位置,剩下一个数也就定了,所以最多需要比较n-1趟。

总共需要比较1+ 2 + … + n-1 = n(n-1)/2,
所以算法复杂度是O(n2)。

冒泡排序法原理动态展示:
在这里插入图片描述
在这里插入图片描述
<

©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页
实付 39.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值