选择排序

Selection SortSelection sort is a sorting algorithm, specifically anin-place comparison sort. It has O(n2) time complexity,making it inefficient on la

冒泡排序

冒泡排序交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。本文介绍第一种交换排序方法:冒泡排序。排序方法将被排序的记录数组 R[1..n]垂直排列,每个记录 R[i]看作是重量为 R

数据结构与算法笔记

基础数据结构数组在计算机科学中,数组是我们最熟悉也是最基础的一种数据结构。通常地,数组由有限个相同数据类型的元素按顺序排列组合而成。数组的数据是连续的,并且会设定上界和下界,其中的每个元素都有属于它们自己的索引值(也就是下标),通过这些下标就能定位到元素。对于绝大多数编程语言来说,数组的索引都是从0

快速排序

本文介绍第二种交换排序方法:快速排序。算法思想快速排序是 C.R.A.Hoare 于 1962 年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。分治法的基本思想分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的

希尔排序

ShellsortShellsort, also known as Shell sort or Shell's method,is an in-place comparison sort. It can be seen as either ageneralization of sorting by

直接插入排序

插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。本节介绍第一种排序方法:直接插入排序。直接插入排序基本思想1.基本思想假设待排序的记录存放在数组 R[1..n]中。初始时,R[1]自成 1

数组&链表必会核心知识

数组和链表是我们最常用也是最基本的数据结构,严格来说基础的数据结构就只有两种,就是数组和链表,其他的各种高阶的数据结构都是从数组和链表中衍生出来的,它们只是在不同的业务场景中根据数组或链表而衍生出来的解决方案。所以说数组和链表是一切数据结构的根本,我们完全有必要更深层次的理解这两种数据结构。如果你对

[转载]HashMap剖析

HashMap是一个非常重要的集合,日常使用也非常的频繁,同时也是面试重点。本文并不打算讲解基础的使用api,而是深入HashMap的底层,讲解关于HashMap的重点知识。需要读者对散列表和HashMap有一定的认识。HashMap本质上是一个散列表,那么就离不开散列表的三大问题:散列函数、哈希冲

[转载]二叉树、平衡二叉树、B-Tree、B+Tree

背景一般说MySQL的索引,都清楚其索引主要以B+树为主,此外还有Hash、RTree、FullText。本文简要说明一下MySQL的B+Tree索引,以及和其相关的二叉树、平衡二叉树、B-Tree,相关的知识网上很多,为了方便自己更快、清楚的了解,文本聚合一些内容以及个人的一些理解。说明二叉查找树