目录

算法

算法

1 数据结构

数据存储时,决定数据顺序和位置关系的便是“数据结构”

1.1 链表

1.2 数组

1.3 栈

1.4 队列

1.5 哈希表

1.6 堆

1.7 二叉树

2 排序

2.1 Bubble Sort 冒泡排序

从序列右边/左边 开始比较相邻两个数字大小,根据结构交换位置的循环比较

  • 第一趟排序 -w736

依次循环

2.2 Selection Sort 选择排序

从待排序的数据中寻找最小值,将其与序列最左边的数字进行交换

  • 一次类推,循环进行 -w894

2.3 Insertion 插入排序

从序列左端开始一次对数据进行排序的算法。 左侧是已归位数据,右侧未排序, 插入排序就是从右侧未排序区域内取出一个数,然后将它插入到已排序区域的合适的位置上

-w871

2.4 Heap Sort 堆排序

2.5 Merge Sort 归并排序

将序列分成长度相同的两个序列,一直到无法下分(即,每个序列只有一个元素) 归并就是讲两个排好序的子序列合并成一个有序序列, 重复直到归并为一个整体 -w681

-w671

2.6 QuickSort 快速排序

随机选取中心值/基准值 pivot,然后将pivot以外的数分为两类 大于pivot 小于pivot 排列成这个形式 【小于pivot】 pivot 【大于pivot】 接着分别对【】中的数据进行排序(【】中的数据可以嵌套使用快速排序) 然后整体排序就完成了

-w701

-w613

  • 以此类推,在排序右侧数据,