
算法
爱生活的小悦悦
生活和艺术一样,最美的永远是曲线。 -- 爱德华布尔沃 - 利顿
展开
-
算法时间复杂度
算法时间复杂度定义在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。原创 2017-11-06 17:10:32 · 379 阅读 · 0 评论 -
冒泡排序算法及优化
冒泡排序算法及优化排序算法种类:冒泡排序冒泡排序(Bubble Sort)是一种典型的交换排序算法,通过交换数据元素的位置进行排序。冒泡排序思路从序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了队列的队尾,从而成为有序序列的一部分;下一次继续这个过程,直到所有数据元素都排好序。算法的核心在于每次通过两两比较交换位置,选出剩余无序序列里最大(小)的数据元素放到队尾。原创 2017-11-03 21:20:05 · 394 阅读 · 0 评论 -
快速排序
快速排序快速排序是每个程序员都应当掌握的排序算法。但数据量一旦超过几万,插入和冒泡的性能会非常差。这时时间复杂度的渐进优势就表现出来了。快速排序是不稳定排序,平均时间复杂度为O(n*log n),最坏情况下O(n^2),空间复杂度O(log n)。(待补充测试数据及时间复杂度的比较)原创 2017-10-30 11:02:54 · 1218 阅读 · 0 评论 -
希尔排序
希尔排序希尔排序(Shell Sort)是插入排序的一种。因 D.L.Shell 于 1959 年提出而得名。希尔排序思路基本思想:将整个待排序记录序列分割为若干个子序列,然后对每一个子序列进行直接插入排序.算法思路:先取一个正整数 d1(d1 < n),把全部记录分成 d1 个组,所有距离为 d1 的倍数的记录看成一组,然后在各组内进行插入排序然后取 d2(d2 < d1)重复上述分组和排序原创 2017-11-13 12:20:09 · 331 阅读 · 0 评论 -
插入排序
插入排序通常人们整理卡牌的方法是一张一张的来,将一张卡牌插入到其他已经有序的牌中适当的位置。在计算机的实现过程中,为了给插入的元素腾出空间,我们需要将其余的所有元素在插入之前都向右移动一位。这种算法叫插入算法。原创 2017-11-12 16:10:43 · 470 阅读 · 0 评论 -
简单选择排序
简单选择排序简单选择排序是最简单直观的一种算法,基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止。原创 2017-11-19 22:24:06 · 307 阅读 · 0 评论 -
归并排序
归并排序归并排序(Merging Sort)也是一种使用分治法来实现的排序算法,它是现代计算机创始人John von Neumann于1945年发明的原创 2017-12-18 10:23:59 · 409 阅读 · 0 评论