9.初级数据结构

常见排序算法

1.哈希

  键值对儿。

2.队列

先进先出

入队是在末尾插入新元素,出队是删除队头的元素

应用场景:先到先得、排队买票

3.栈

先进后出

应用场景:货车装货,先放的货物,在最里边,最后被搬出来。

  1. 哈希表(Hash Table)
    • 计数排序中的桶(复杂度 O(n+max),比快排还快
    • 桶排序 与计数排序的区别
    • 基数排序 与计数排序的区别
      /*计数排序伪代码*/
      	arr < -{
      		'0': 4,
      		'1': 2,
      		'2': 6,
      		'3': 8,
      		'4': 0,
      		'5': 1,
      		'6': 88,
      		'length': 7;
      	};
      	hash < -{};
      
      	index < -0; //赋值
      	while(index < arr['length'])
      		number = arr[index] //4,2,6,8,0,1,88
      
      		if hash[number] == undefined
      			hash[number] = 1;
      		else 
      			hash[number] = hash[number]+1;
      		end;
      		
      		index <- index + 1;
      	end;
      
      	index_i <- 0;
      	max <- findMax(arr);//最大值
      	newArr <- {};
      
      	//遍历
      	while(index_i <= max) //从0开始
      		count = hash[index_i];
      		if count != undefined
      			countIndex = 0;
      			while (countIndex < count) 
      				newArr.push(index_i);
      			end;
      		end;
      		index_i <- index_i + 1;
      	end;

       

  2. 队列(Queue)
    • 先进先出
    • 可以用数组实现
    • 举例:排队
  3. 栈(Stack)
    • 先进后出
    • 可以用数组实现
    • 举例:盗梦空间
  4. 链表(Linked List)
    • 数组无法直接删除中间的一项,链表可以
    • 用哈希(JS里面用对象表示哈希)实现链表
    • head、node 概念
  5. 树(tree)
    • 举例:层级结构、DOM
    • 概念:层数、深度、节点个数
    • 二叉树
    • 满二叉树
    • 完全二叉树
    • 完全二叉树和满二叉树可以用数组实现
    • 其他树可以用哈希(对象)实现
    • 操作:增删改查
    • 堆排序用到了 tree
    • 其他:B树红黑树AVL树

堆排序可视化:https://www.cs.usfca.edu/~galles/visualization/HeapSort.html
堆排序JS代码完整讲解(看到最后):http://bubkoo.com/2014/01/14/sort-algorithm/heap-sort/

 
 
G
M
T
 
 
检测语言世界语中文简体中文繁体丹麦语乌克兰语乌兹别克语乌尔都语亚美尼亚语伊博语俄语保加利亚语信德语修纳语僧伽罗语克罗地亚语冰岛语加利西亚语加泰罗尼亚语匈牙利语南非祖鲁语卡纳达语卢森堡语印地语印尼巽他语印尼爪哇语印尼语古吉拉特语吉尔吉斯语哈萨克语土耳其语塔吉克语塞尔维亚语塞索托语夏威夷语威尔士语孟加拉语宿务语尼泊尔语巴斯克语布尔语(南非荷兰语)希伯来语希腊语库尔德语弗里西语德语意大利语意第绪语拉丁语拉脱维亚语挪威语捷克语斯洛伐克语斯洛文尼亚语斯瓦希里语旁遮普语日语普什图语格鲁吉亚语毛利语法语波兰语波斯尼亚语波斯语泰卢固语泰米尔语泰语海地克里奥尔语爱尔兰语爱沙尼亚语瑞典语白俄罗斯语科萨科西嘉语立陶宛语索马里语约鲁巴语缅甸语罗马尼亚语老挝语芬兰语苏格兰盖尔语苗语英语荷兰语菲律宾语萨摩亚语葡萄牙语蒙古语西班牙语豪萨语越南语阿塞拜疆语阿姆哈拉语阿尔巴尼亚语阿拉伯语韩语马其顿语马尔加什语马拉地语马拉雅拉姆语马来语马耳他语高棉语齐切瓦语
 
世界语中文简体中文繁体丹麦语乌克兰语乌兹别克语乌尔都语亚美尼亚语伊博语俄语保加利亚语信德语修纳语僧伽罗语克罗地亚语冰岛语加利西亚语加泰罗尼亚语匈牙利语南非祖鲁语卡纳达语卢森堡语印地语印尼巽他语印尼爪哇语印尼语古吉拉特语吉尔吉斯语哈萨克语土耳其语塔吉克语塞尔维亚语塞索托语夏威夷语威尔士语孟加拉语宿务语尼泊尔语巴斯克语布尔语(南非荷兰语)希伯来语希腊语库尔德语弗里西语德语意大利语意第绪语拉丁语拉脱维亚语挪威语捷克语斯洛伐克语斯洛文尼亚语斯瓦希里语旁遮普语日语普什图语格鲁吉亚语毛利语法语波兰语波斯尼亚语波斯语泰卢固语泰米尔语泰语海地克里奥尔语爱尔兰语爱沙尼亚语瑞典语白俄罗斯语科萨科西嘉语立陶宛语索马里语约鲁巴语缅甸语罗马尼亚语老挝语芬兰语苏格兰盖尔语苗语英语荷兰语菲律宾语萨摩亚语葡萄牙语蒙古语西班牙语豪萨语越南语阿塞拜疆语阿姆哈拉语阿尔巴尼亚语阿拉伯语韩语马其顿语马尔加什语马拉地语马拉雅拉姆语马来语马耳他语高棉语齐切瓦语
 
 
 
 
 
 
 代码段 小部件
 
 
文本转语音功能仅限200个字符
 
 
选项 : 历史 : 反馈 : Donate关闭
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值