数据结构与算法基础

几种常见算法

  • 算法演示
  • 冒泡排序 (Bubble Sort)
    有个数组a=[5,4,1,3,2,6],从小到大排序,总共进行a.length-1轮,首先将a[0]和a[1]比较,谁大就把谁放在后面,交换完后再将a[1]和a[2]比较,谁大就把谁放在后面…..一直到a[4]和a[5]比较,进行完第一轮后,最大的那个就已经放在最后一位了,接下来再重新从a[0]开始……直到进行到a[3]和a[4]比较(a[5]上一轮已经确定了最大的,不用再动了),一直进行,最后再比较一次a[0],a[1],排完a[0],a[1]的顺序,a数组的顺序就排好了~

  • 选择排序 (Selection Sort)
    选出最小的和第一位交换位置,第一位就被确定了,接下来找倒数第二小的和第二位换位置,接着再找倒数第三小的和第三位换位置……一直找到最后一位

  • 插入排序 (Insertion Sort)
    从数组的第二个开始,和第一个比较并排顺序,接着拿第三个和第二个比,若比第二个大则直接不动,若比第二个小则和第一个比,若比二小比一大则插在它们中间,若比第一个小则放在第一个,接着再拿第四个分别和三、二、一
    比…….直到最后。

  • 随机快排
  • 计数排序
  • 桶排序
  • 基数排序 (Radix Sort)
  • 堆排序
  • 归并排序

数据结构入门

  • 哈希(Hash)
    计数排序中的桶就是hash,hash的意思就是一个key对应一个value,如:
    数组也是hash:a[0]=1,a[1]=2,……
    对象也是hash
  • 队列
    先进先出,和排队一样


  • 先进后出,和队列相反

  • 链表

let a = {
    value:1,
    next:{
         value:2,
         next:{
            value:3
         }
    }
}

  • html就是一种树
    二叉树每个节点最多有两个分支,被称为左子树和右子树

你可能感兴趣的:(基础知识)