您好、欢迎来到现金彩票网!
当前位置:2019全年免费资料大全 > 桶链算法 >

计算机算法基础总结

发布时间:2019-05-21 14:17 来源:未知 编辑:admin

  本文主要是通过通俗易懂的算法和自然语言, 向大家介绍基础的计算机排序算法和查找算法, 还有一些作为一名程序猿应该知道的名词, 数据结构, 算法等等. 但是仅仅止于介绍, 因为本人能力不足, 对一些高级的算法和数据结构理解不够通透, 所以也不作太多的深入的剖析.. demo都在我的Github中能找得到.

  同样的, 通过最近面试实习生的机会, 把一些基础都捡起来, 巩固巩固, 同时如果能帮助到大家, 那也是极好的. 废话不多说, 入正题吧.

  ps : 基数排序的复杂度中, r代表关键字的基数, d代表位数, n代表关键字的个数. 也就是说, 基数排序不受待排序列规模的影响.

  算法复杂度 : 这里表中指的是算法的时间复杂度, 一般由O(1), O(n), O(logn), O(nlogn), O(n²), ..., O(n!). 从左到右复杂度依次增大, 时间复杂度是指在多少时间内能够执行完这个算法, 常数时间内呢, 还是平方时间还是指数时间等等.

  还有个概念叫空间复杂度, 这就指的是执行这个算法需要多少额外的空间. (源数组/链表所占的空间不算)

  稳定性 : 算法的稳定性体现在执行算法之前, 若a = b, a在b的前面, 若算法执行完之后a依然在b的前面, 则这个算法是稳定的, 否则这个算法不稳定.

  原理 : 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。

  其实就是分组插入排序, 也称为缩小增量排序. 比普通的插入排序拥有更高的性能.

  算法思想 : 根据增量dk将整个序列分割成若干个子序列. 如dk = 3, 序列1, 7, 12, 5, 13, 22就被分割成1, 5,7, 13和12, 22, 在这几个子序列中分别进行直接插入排序, 然后依次缩减增量dk再进行排序, 直到序列中的元素基本有序时, 再对全体元素进行一次直接插入排序. (直接插入排序在元素基本有序的情况下效率很高)

  原理 : 归并排序是把序列递归地分成短序列,递归出口是短序列只有1个元素(认为直接有序)或者2个序列(1次比较和交换),然后把各个有序的段序列并成一个有序的长序列,不断合并直到原序列全部排好序。

  算法思想 : 堆排序 = 构造堆 + 交换堆末尾元素与根结点 + 删除末尾结点 + 构造堆 + 交换....依次循环, 由于根结点必定是堆中最大(最小)的元素, 所以删除出来的元素序列也必定是升序(降序)的.

  算法思想 : 先从数列中取出一个数作为基准数 - 将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边 - 再对左右区间重复第二步,直到各区间只有一个数

  基数排序的算法复杂度不会因为待排序列的规模而改变. 基数排序又称为桶排序. 基数排序有3个重要概念 :

  例如一组序列121 83 17 9 13 1. 先根据个位数排序 121 83 13 17 9 2. 再根据十位数排序 9 13 17 121 83 3. 再根据百位数排序 9 13 17 83 121 4. 由于没有千位数, 所以算法结束 ps : 需要注意的是, 基数排序每一轮排序所采用的算法必须是稳定的排序算法, 也就是说, 例如13和17的十位数均为1, 但是由于个位数排序的时候13是在17的前面的, 所以十位数排序过后13也必须在17的前面.

  算法思想 : 在一个有序数组里, 先对比数组中间的数middle与要查找的数num的大小关系

  哈希查找需要一张哈希表, 哈希表又称为散列法, 是高效实现字典的方法. 查找速度在O(1), 这说明无论你需要查找的数据量有多大, 他都能在常数时间内找到, 快得有点违背常理吧? 嘿嘿.

  如果两样东西通过哈希函数算出来的key相同怎么办? 东西怎么存? 这个时候就是碰撞检测机制派上用场的时候

  方法一 : 开散列法, 也称分离链法 : 即相当于在数组中每个格子是一个链表, 只要发生冲突就把后来的value拼接在先来的value后面, 形成一条链.

  第一章 绪论 什么是数据结构? 数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 第二章 算法 算法的特性:有穷性、确定性、可行性、输入、输出。 什么是好的算法? ----正确性、可读性、健壮性、时间效率高、存储量低 函数的渐近增长:给定两个函数f...

  一、数据结构绪论 数据结构的基本概念 数据结构是一门研究非数值计算的程序设计问题中,计算机的操作对象以及它们之间的关系和操作的学科。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据结构包含三个方面的含义: ...

  课程介绍 先修课:概率统计,程序设计实习,集合论与图论 后续课:算法分析与设计,编译原理,操作系统,数据库概论,人工智能,图形图像,Web信息处理 ​ 数据结构和算法是衡量计算机科班出身的重要标准。值得花大功夫去学。 课程特点:基础性+理论性+实践性+挑战性 教学要...

  本文涉及更多的是概念,代码部分请参考之前写过的 2 篇博客 基于Javascript的排序算法基本数据结构和查找算法 本文主要是基础的数据结构和算法概念,可能部分地方会涉及更高级的算法和算法,具体内容以后会单独写的。此外一些性质还会不断补充,也希望可以得到您的指点,谢谢。 ...

  1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租好的房子,算来工作刚满一年。在过去的一年里,很庆幸刚迈出校门的我遇见了现在的这一群同事,这一帮朋友,虽然工作之初经历波折,还是很开心有现在的工作环境。其实走在这...

  2017年“江阴周庄”全国业余棋王选拔赛安徽省蚌埠分站怀远赛区预选赛——暨2017年怀远首届“乳泉杯”象棋争霸赛于2017年4月15——16日,在环境优美,景色秀丽的安徽省乳泉酒厂有限公司隆重举行。 本次比赛由安徽省象棋运动协会及安徽省棋院主办,由怀远象棋协会承办,安徽省乳...

  不要因为也许会改变 就不肯说那句美丽的誓言 不要因为也许会分离 就不敢求一次倾心的相遇 总有一些什么 会留下来的吧 留下来作一件不灭的印记 好让好让那些 不相识的人也能知道 我曾经怎样深深地爱过你 ——席慕蓉 《印记》

  以前守在你的身边是以为即使你对我没有男女之情,在你众多异性朋友中,我在你心里的位置也是最重的。终究是自己想当然了。 既然如此,我也不能再无条件的守护和付出了,我也要慢慢地删减掉你在我心里的份量,这样才算公平不是吗? 这也是我爱自己,保护自己的方式。 今生,我们最好的关系可能...

  真想可以被掩盖,但不可以被篡改。 但我第一眼看到这个书名的时候,无疑,我很惊讶。社会本身就是由不同的朋友圈组成,而我们生活更是需要朋友之间的相互信任。当一个人对身边所有人都不再信任,或许是悲哀之至吧。 每个人的生命中都有值得相信的东西,我们都是怀着这份信仰生活下去的。如果有...

http://linkzoo.net/tongliansuanfa/75.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有