老狗啃骨头之算法-插入排序
插入排序,一般是说直接插入排序,是一种最直观最简单的排序算法。插入排序的原理是依次将未排序的数据元素插入已完成排序的有序数列,如此往复,最终完成所有数据的排序。在插入排序中,往前遍历的时候,遇到等值的元素就直接插入结束这一轮了,也就是说,经过排序,这些数据元素的相对顺序是不受影响的,所以插入排序属于稳定的排序算法
插入排序,一般是说直接插入排序,是一种最直观最简单的排序算法。插入排序的原理是依次将未排序的数据元素插入已完成排序的有序数列,如此往复,最终完成所有数据的排序。在插入排序中,往前遍历的时候,遇到等值的元素就直接插入结束这一轮了,也就是说,经过排序,这些数据元素的相对顺序是不受影响的,所以插入排序属于稳定的排序算法
对于SEO来说,meta标签中两个比较常见的: keywords、description和,加上网页的title,组成我们通常所说的TKD(title,keywords,description)。TKD可以交代清楚,页面的基本信息:title,一般是页面内容的题目等关键信息;keywords,页面内容的关键词;description,页面内容简明扼要的描述
快速排序,又称分区交换排序,简称快排。它也是一种交换排序,它是一种在处理大量数据方面有优势的算法。当数据量巨大的时候,冒泡排序这种中规中矩,挨次遍历逐个对比的玩法,估计会让人抓毛的,于是据说在公元1960年,一位叫东尼·霍尔(C. A. R. Hoare)的大神,沐浴斋戒,焚香祷告…..苦思冥想,终得所创
内容,永远是网站生存的根基,这是个根本。搜索引擎是服务于互联网用户的,从这个角度来看,搜索引擎的主要任务就是把优质的内容,搜集起来,做对比筛选,然后展现给用户,来实现搜索引擎自身的价值、给用户带来价值。所以说,好的内容既可以满足搜索引擎的自我实现,也可以满足用户使用搜索的目的,两方都满足了,我们的网站自然是会受到欢迎,这是一个多赢的局面
冒泡排序是交换排序,是一种简单直观的排序算法。冒泡的算法原理是逐次循环遍历,比较两个相邻的元素,将小的(或大的)往前调。这样,每一轮都能得到一个最小的(或最大的),剩下的重复这个操作,最后完成排序。这个算法的名字,每轮这个逐个对比置换,很像那种气泡浮起,从水底慢慢浮到上面的样子,往上越晃荡越大,故曰“冒泡”
排序,就是将一组无序的数据,按照一定规则,使其有序化排列。排序时是否根据比较来决定元素间的相对次序,还可以分为比较类排序、非比较类排序。无论什么分类,都是尝试将其算法特征进行归纳,是为了方便我们学习的,融会贯通,这些名称分类即使以后都忘了,在设计程序算法的时候,也会潜移默化的影响着我们,这才是最后真正的目的
一般说,随着数据结构复杂度和解决问题的复杂度的增长,时间复杂度也是随之增长的。在相同的资源条件下,空间复杂度和时间复杂度决定了一个算法的好坏,实际运用过程中,我们还是可能会遇到空间换时间、时间换空间的情况,实际运用,很多情况下是没有最优、只有最合适的,只有精于计算、深刻理解,才好做出最恰当的算法设计
图也是典型的非线性数据结构,相较于树,更为复杂。线性表和树在逻辑结构上都是没有回路的,图就不一样了,图任意两个元素,都可以有关系。散列表又被称为哈希表,是一种键值对应的结构。我们最熟悉的身份证,也是这样的,每人给予一个数字编号,来对应这个人,基本是一一对应,通过数字化的编号来定位具体的人,要方便快捷的多得多
树在实际应用中非常广泛,较为具体的是,我们用到的Mysql数据库的索引,就是用B+树实现的;很多Hash结构,底层也是用到了红黑树。树是一种功能强大,但相对复杂一些的数据结构,在学习的过程中,可定是要多花些时间精力去深一下,在很多算法的优化上,也可以体会到树这种数据结构在实际运用中带来的乐趣
栈和队列也是比较常见的数据结构,它们是比较特殊的线性表。相对于数组和链表,栈和队列是一种更具特性的场景应用,栈和队列都可以用数组或链表进行具体的实现。栈和队列都是比较特殊的线性结构,不同但具有典型的模型特点。栈是只有一个出入口,先进后出,后进先出;队列是两头开,一头进一头出,先进先出