数据结构和算法
文章平均质量分 76
dongfanglanyi
研究生期间从事OFDM算法研究,现就职于互联网软件开发。兴趣点:无线通信、计算机编程。
座右铭:1、不要用战术上的勤奋,掩盖战略上的懒惰;2、犯其至难而图其至远
展开
-
数据结构基本功——排序算法(冒泡排序)
排序算法那么多,冒泡和简单选择排序却曾是武林中的绝世秘籍,那么他们为啥在当8年那么屌,原因是简单,还有就是根本没有超过O(n^2)时间复杂度的高招出现。为了学习这些秘籍,我觉得还是应该从秘籍的思想、复杂度、实现这三方面分析。目录冒泡排序的思想:复杂度分析C++实现冒泡排序的思想:每一轮都是前后两两比较,一共进行n-1轮每一轮的比较有两种方法: a[j] [j+1]...原创 2018-08-14 11:14:46 · 186 阅读 · 0 评论 -
数据结构基本功——排序算法(简单选择排序)
从上一篇冒泡排序中,相信大家也掌握到了要点:轮次,每轮相邻两个比较,把最大值(最小值)推到边缘。这一篇主要讲的简单选择排序,思想更加简单。目录1、简单选择排序的思想:2、复杂度分析3、C++实现1、简单选择排序的思想:通过n-i次 关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1≤i≤n)个记录交换。2、复杂度分析无论最好还是最坏的情况:...原创 2018-08-14 11:18:44 · 791 阅读 · 0 评论 -
数据结构基本功——排序算法(直接插入排序和希尔排序)
前面两篇中冒泡排序和简单选择排序在武林中的没落,首先是因为希尔排序算法的到来,它终结了时间复杂度只能是O(n^2)的时代,同时呢,直接插入排序又因为是希尔排序算法灵魂的来源,所以,在这儿一并学习。一、直接插入排序1、直接插入排序的思想:将一个记录插入到已经排好序的有序表中,从而得到一个新的,记录数增1的有序表。可以想象一下理扑克牌的方法:(1)设前i张牌有序的(2)将第i+1张扑...原创 2018-08-14 11:28:40 · 1682 阅读 · 0 评论 -
数据结构基本功——排序算法(堆排序)
既然要说堆排序,那么自然先问的是什么是堆? 堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。 堆排序(Heap)是利用堆(假设利用大顶堆)进行排序的方法。知道了堆和堆排序的概念之后,那么怎么实现堆排序呢?目录一、堆排序的基本思想是:二、堆排序的C++实现...原创 2018-08-14 16:16:25 · 241 阅读 · 0 评论