排序1:插入排序、冒泡排序、选择排序
排序在实际生产中是一种极其常见的操作,但是通常我们会使用现成的算法实现。更多时候是库或者第三方应用给你的数据本身就是有序的。对于大量数据的操作,优先进行排序是一个良好的习惯,在你后续的操作上都能从这个有序数据中受益。
排序在实际生产中是一种极其常见的操作,但是通常我们会使用现成的算法实现。更多时候是库或者第三方应用给你的数据本身就是有序的。对于大量数据的操作,优先进行排序是一个良好的习惯,在你后续的操作上都能从这个有序数据中受益。
散列表也就是哈希表,是一种键值对(key-value pair)数据结构。散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说,如果没有数组,就没有散列表。
哈希表的本质是将键(key)通过散列函数获得散列值(哈希值)映射到数组的index上,使得我们可以利用上数组可以通过index随机访问数据的特性,通过key直接访问value。
链表,即使是有序的链表,在插入、删除,查找之前都需要就行查找操作以确认操作位置。而查找过程只能通过遍历完成,使得很多时候,数据的操作都要有O(n)的时间复杂度。
链表优化
那么,我们能否构建一条快速通道,在元素小于目标元素的时候跳过大多数小于当前数据的元素,从而实现快速查找呢?
首先算法和数据结构是分不开的,数据结构是数据的组织方式,算法是数据的操作方式(也就是一组数据的操作方法和操作策略),数据结构是为算法服务的,算法要作用在特定的数据结构之上。