zoukankan      html  css  js  c++  java
  • 简单小结几个常见算法的大体实现思想

    前言,

    今天(忍住)笔试一题,前面基础题没意思,所以只做了最后一题:输入A,B两字符串,比较排序后是否相等。

    想了几种,最后选择先建二叉查找树,再中序查找得有序字符,后循环比较方式。(主要能更好体现数据结构+算法,还有OO)

    N年没有笔试了,想起一些还记的算法小结下。

    PS,后来面试官水平很一般,哎~,招研发主管,居然这样,又被忽悠了,浪费阿拉时间!下次要笔试还是不尿它。。。

    排序

    1.冒泡:从低往上选择临近比较排序;

    2.插入:在剩下要排序数据中,选一个插入已排好序的队列中的适合位置;

    3.选择:在剩下要排序数据中,选个最值(最大或最小)插入已排好序的队列中末端(头或尾);

    4.快速:选择一参照值,从右左两边不断各自向对方移动(下标+-1)、与查找值比大小,后交换值,不停递归致排完序;

    5.合并:先拆成有序,再比较合并;

    6.堆排序:先建堆(上大于下),后n-1次删除最值;

    查找

    1.蛮力:顺序查找;

    2.折半:先排序,不断选一半查询;

    3.二叉树:建树查找;

    4.哈希表:先建键值对表(即y=ax+b),后由键差值;

    5.图查找:广度深度查找(不大记得,好像是建树还是矩阵方式。。) 

    再说优缺点,减变分大法就N复杂了,要翻资料、要体会的、没必要,算法讲究思路方式、多说无益。

    无论是C、OC、C#、JAVA等那种语言的编写实现只是把伪代码思想用编码的表现而已。。。

    据说,好像Google最强的PR查找算法就是根据有向图的矩阵方式,可惜自己高数&线代等都不咋的~

    若转载,请注明@jiyilee.cnblogs.com 珍惜生活,努力工作!!!
  • 相关阅读:
    js string to int
    有的事情是无可奈何的,有的事情是能够改变的……
    拼接字符串去掉最后多余的串,JSON的遍历
    git入门
    js的闭包
    nodejs系列(二)REPL交互解释 事件循环
    nodejs系列(一)安装和介绍
    学习mongo系列(十一)关系
    学习mongo系列(十)MongoDB 备份(mongodump)与恢复(mongorerstore) 监控(mongostat mongotop)
    学习mongo系列(九)索引,聚合,复制(副本集),分片
  • 原文地址:https://www.cnblogs.com/jiyilee/p/4898164.html
Copyright © 2011-2022 走看看