赞
踩
嵌入式对于算法的要求不是很高,但面试的时候让你手写排序算法还是有可能的。面试前最好简单过一下。
本文所有代码已经在gcc下通过编译运行测试,结果都是正确的。
算法思想
让数组中相邻两个数字进行比较,如果是升序排列,如果左边的大于右边,则交换,相当于将较大的数往后挪。第一趟有n个数据,需要比较n-1次,可以将最大的数挪到数组最末端,第二趟只有n-1个数据了,只需要比较n-2次…
每一趟可以决出一个数,n个数只要决出n-1个数的位置,剩下一个数也就定了,所以最多需要比较n-1趟。
总共需要比较1+ 2 + … + n-1 = n(n-1)/2,
所以算法复杂度是O(n2)。
冒泡排序法原理动态展示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。