
数据结构与算法
文章平均质量分 69
物联网布道师
拥有超过6年物联网开发经验。特别是在蓝牙领域有丰富的产品开发经验,对传统蓝牙,低功耗蓝牙,蓝牙Mesh等协议都有深入的研究。
展开
-
选择排序
排序算法之选择排序 1.简介 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。 2.算法思想 选择排序,从头至尾扫描序列,找出最小的一个元素,和第一个元素...原创 2019-08-18 18:54:20 · 417 阅读 · 0 评论 -
插入排序
插入排序 1. 算法简介 插入排序是一种简单直观并且稳定的排序,虽然插入排序的时间复杂度为O(n^2),但是在一个几乎有序的序列中插入一个数,要求插入后此数据序列仍然有序,这时候插入算法便具有很大的优势。 2. 算法思想 插入排序的基本思想是:每步将一个待排序的记录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。 插入排序的基本操作就是将一个数据插入到已经排...原创 2019-08-18 20:51:17 · 150 阅读 · 0 评论 -
希尔排序
希尔排序 1. 算法简介 希尔排序是一种基于插入排序而改进的一种排序算法。插入排序对于近乎有序的序列,排序效率非常高,可以达到线性排序的效率。但对于其他的情况,每次只能移动一位的插入排序效率是非常低的,基于次产生了希尔排序。 2. 算法思想 基于此产生了希尔排序,希尔排序是对序列按照下标的一定增量进行分组,对每一组使用直接插入排序(初始增量比较大,每组的元素较少,序列近乎有序)。又有然后逐...原创 2019-08-20 00:11:55 · 331 阅读 · 0 评论 -
快速排序
快速排序 算法简介 快速排序是一种非常高效的算法。首先排序速度比较快,这个从名字就可以看出来,快速排序的平均时间复杂度为O(nlogn),最坏情况为O(n2),最好情况为O(n)。而且快速排序是一种原地排序算法,只需要很小的栈作为辅助空间,很适合大数据集的比较。 算法思想 快速排序算法是分为分割和递归两部分。分割指的是将选取一个基准值,然后将序列分割为左边小于该基准值,右边大于该基准值两部...原创 2019-08-25 11:57:34 · 195 阅读 · 0 评论 -
冒泡排序
冒泡排序 算法简介 冒泡排序是一种计算机科学领域的较简单的排序算法,时间复杂度是O(n*n),虽然运行效率较慢,但实现简单,适用于小数据的排序。 冒泡排序要重复的走访要排序的序列,一次比较相邻的两个元素,如果顺序错误就交换两者顺序,通过不断的交换来排序。 算法思想 冒泡排序是比较通过不断比较相邻的元素,通过不断的交换,将大的元素沉到底部,小的元素上浮的前面。 例如,对序列arr[] =...原创 2019-08-22 00:03:00 · 173 阅读 · 0 评论 -
归并排序
归并排序 算法简介 归并排序是一种将递归和分治结合到一起实现的一种排序算法。将一个序列通过递归拆分为越来越小的半子序列,然后再对半子序列合并为 一个大的有序序列。 算法思想 归并排序算法可以分为递归和归并两部分。首先对一个序列进行递归,要将一个序列排序,先要将序列的前半部分排序,然后再将序列的后半部分,要排序前半部分又将前半部分分为两部分,依次递归。。。 当递归到一个元素的时候,不用排序,...原创 2019-08-22 00:05:14 · 276 阅读 · 0 评论