算法
木头骑士
三天打鱼两天晒网的执着青年。嵌入式打杂工程师,web全沾工程师。伪文青,真宅男,历史爱好者。
展开
-
算法学习与代码实现2——插入排序
算法学习与实现2——插入排序算法思路插入排序其实就是斗地主抓拍的过程,大神级玩家除外,上学时我们寝室一大神,打牌时手中的牌从来不按套路放,我看的是云里雾里,但人家却心中有数。我不是大神,我斗地主只能按顺序放牌,右边小左边大,而且摸牌的时候必须随时排序。插入排序就是个摸牌的过程,每摸到一张牌,就从左边开始对比,知道找到一张手中已有的牌小于或等于这张新摸到的牌,然后把这张牌插入到该牌的左边。算法性能插入原创 2016-05-22 11:30:45 · 485 阅读 · 0 评论 -
算法学习与代码实现3——合并排序
合并排序的解释与c语言代码实现原创 2016-05-27 22:39:35 · 521 阅读 · 0 评论 -
算法学习与代码实现4——冒泡排序
算法学习与代码实现4——冒泡排序 生命中接触的第一个排序算法。 算法思路 想当年读大一的时候学习C语言,冒泡排序是C语言课上讲的第一个排序算法,可能也是唯一一个。 思路很有趣,为了确保序列从小到大排列,从最后两个数开始,依次比较相邻的两个数,如果需要交换,就将两个数进行交换。这种比较依次向前,直到前面的数都已经是排好序的数为止。这样一趟一趟的进行比较,每一趟都将最小的数“挤”到最前面。原创 2016-05-28 10:18:52 · 384 阅读 · 0 评论 -
算法学习与代码实现1——开始、生成随机数
开端 作为一个非科班出身的程序猿,算法始终是个软肋。之前倒也抽时间断断续续看了点算法的书,但基本过目即忘,可能每个算法都实际实现以下,编写下练习代码才能更好的学习。于是在github上创建了一个仓库,用来一个个实现算法。置于语言的选择,都说语言不过是工具,算法才是核心,那么就多用几种语言来实现吧。其实我会的语言也不多,c/c++可能还好,再就是个初学者阶段的Python,在实现算法的过程中,原创 2016-05-08 16:48:05 · 872 阅读 · 0 评论 -
算法学习与代码实现5——堆排序
算法学习与代码实现5——堆排序堆排序的思想当年看《算法导论》看了好几遍也没理解,现在算是明白了。算法思路堆排序借助的是堆这个数据结构。堆首先是个完全二叉树,可以用数组表示。下面一张《算法导论》中的插图形象的表示了二叉堆在数组中的表示:而最大堆又满足一个额外的条件:A[PARENT(i)] ≥A[i] 这样,在堆排序中,我们需要首先将一个数组变成最大堆,然后将数组的第一个数和最后一个数互换,再将最后一原创 2016-06-11 10:38:41 · 307 阅读 · 0 评论 -
算法学习与代码实现6——快速排序
算法学习与代码实现6——快速排序快速排序是实际使用最广的一个排序方法,虽然最坏时间复杂度大,但一般来说时间复杂度还是很低的。算法思路仍然是分治的思想。在《啊哈!算法》中有非常形象的描述。就是想办法以数组一个元素a为分界,前半部分都小于等于a,后半部分都大于等于a,然后递归的对前后两部分调用快速排序。划分的方法是选择数组的第一个数为基准,两个哨兵分别从第二个数和最后一个数开始相向而行,右面的哨兵找到比原创 2016-06-12 22:37:04 · 348 阅读 · 0 评论