
数据结构
数据结构
GoodbyeRonnie
这个作者很懒,什么都没留下…
展开
-
TS:链表
class Node { constructor(data){ this.data = data; this.next = null; }}class LinkedList { constructor(head){ if(typeof head === 'undefined'){ this.length = 0; this.head = null; }else{ this.length = 1; this.head = new Node(head); }原创 2021-03-08 12:30:40 · 937 阅读 · 0 评论 -
TS:线性表
抽象描述线性表:由大于等于0个元素构成的有序序列存储实现数组存储实现利用数组连续存储空间顺序存放线性表元素type ListElement<T> = Ttype List<T> = T[]操作集初始化空线性表function MakeEmpty<T> ():List<T> { return []}返回线性表长度function Length<T> (list:List<T>):number {原创 2021-03-08 12:20:51 · 365 阅读 · 0 评论 -
TS:栈、队列
栈LIFO:后进先出class Stack { constructor(){ this.items = [] } // 从栈顶放入元素 push(...element){ this.items.push(...element) } // 从栈顶取出元素 pop(){ return this.items.pop() } size(){ return this.items.length } clear(){ this.items = []; } // 返回栈顶第原创 2021-03-07 19:44:57 · 759 阅读 · 0 评论 -
JS: 算法时间复杂度分析
语句频度:设 n 为求解的问题的规模,基本操作(或语句)执行次数总和称为语句频度,记做f(n)。时间复杂度:算法(或程序)中基本操作(或语句)重复执行的次数总和称为时间复杂度,记做T(n),且有T(n) = O(f(n)) 。求时间复杂度步骤:1. 去掉f(n)中所有加法常数2. 只保留最高阶项举例:function plus1(num){ console.log(num); // 1 num++ // 1 console.log(num); // 1}语句频度: f(n原创 2020-12-16 15:29:22 · 1238 阅读 · 0 评论 -
JS: 排序算法
冒泡排序依次比较两个相邻元素大小,如果顺序错误则交换位置,递归此操作。function bubbleSort(data){ var temp=0; for(var i=data.length;i>0;i--){ //由于每次执行都会把最大的数移动到数组尾部, //所以每次循环长度减少1,避免不必要比较 for(var j=0;j<i-1;j++){ // 比较相邻元素 if(data[j]>data[j+1]){ //交换元素位置 temp=原创 2020-12-21 23:19:35 · 217 阅读 · 0 评论