算法基础模版

算法基础模版

算法 - 数学

《程序员数学 v2.0》 | bugstack 虫洞栈

排序

1.png

快速排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
	
void quick_sort(int q[], int l, int r) { //(优化基准值位置)
if (l >= r) return;
int i = l - 1, j = r + 1;
int x = q[l + r >> 1];
while (i < j) {
do i++; while (q[i] < x);
do j--; while (q[j] > x);
if (i < j)
swap(q[i], q[j]);
}
quick_sort(q, l, j);
quick_sort(q, j+1, r);
}


void quick_sort(int[] a, int l, int r) {
if (l >= r) return;
int i = l, j = r;
int x = a[l]; // 左边为基准
while (i < j) {
while (i < j && a[j] >= x) j--; // 从右边开始
a[i] = a[j]; // 将右边放置到左边 (空)
while (i < j && a[i] >= x) i++;
a[j] = a[i] // 将左边放置到右边 (空)
}
a[i] = x;
quickSort(a, l, i-1);
quickSort(a, i+1, r);
}

void quickSort(int[] a, int l, int r) {
if (l >= r) return ;
int i = l, j = r;
int x = a[r]; // 右边基准值
while (i < j) {
while (i < j && a[i] <= x) i++; // 左边开始
a[j] = a[i];
while (i < j && a[j] >= x) j--;
a[i] = a[j];
}
a[i] = x;
quickSort(a, l, i-1);
quickSort(a, i+1, r);
}

堆排序

1
2
3
4
5
6
7
// up

// down

// build


————《平衡二叉树》————

AVL

自平衡二叉树(Self-balancing binary search tree)_ximeneschen的博客-CSDN博客

LL(RR)型旋转:

在这里插入图片描述

在这里插入图片描述

LR(RL)旋转:

需要经过两次旋转(右旋后左旋)才能让AVL树恢复平衡

LR ==》 RR + LL

在这里插入图片描述

RL ==》 LL + RR

在这里插入图片描述

B (- / +) 树

图解:什么是B树?(心中有 B 树,做人要虚心)一文读懂B-树 - 知乎 (zhihu.com)


算法基础模版
http://example.com/2023/07/20/algorithm/算法基础模版/
作者
where
发布于
2023年7月20日
许可协议