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 珍惜生活,努力工作!!!
  • 相关阅读:
    单片机的状态机框架编写
    lubuntu18.04.4LTS系统安装及esp8266的环境搭建
    tcp网络驱动芯片w5500使用小记
    virtual box平台下如何实现Windows和ubuntu的文件共享——涉及增强工具+挂载技巧
    ubuntu的版本生命周期
    ubuntu18.10 server折腾小记
    iar、keil(ac5+ac6)编译效果小记
    IAR嵌入式工作台IDE _ (__no_init) 绝对定位
    大战Java虚拟机【2】—— GC策略
    大战Java虚拟机【1】—— 内存
  • 原文地址:https://www.cnblogs.com/jiyilee/p/4898164.html
Copyright © 2011-2022 走看看