diff --git a/codes/c/chapter_sorting/bucket_sort.c b/codes/c/chapter_sorting/bucket_sort.c
index 88f6ce4b0c..b9b65de16b 100644
--- a/codes/c/chapter_sorting/bucket_sort.c
+++ b/codes/c/chapter_sorting/bucket_sort.c
@@ -20,24 +20,20 @@ void bucketSort(float nums[], int n) {
int k = n / 2; // 初始化 k = n/2 个桶
int *sizes = malloc(k * sizeof(int)); // 记录每个桶的大小
float **buckets = malloc(k * sizeof(float *)); // 动态数组的数组(桶)
-
+ // 为每个桶预分配足够的空间
for (int i = 0; i < k; ++i) {
- // 为每个桶预分配足够的空间
buckets[i] = (float *)malloc(n * sizeof(float));
sizes[i] = 0;
}
-
// 1. 将数组元素分配到各个桶中
for (int i = 0; i < n; ++i) {
int idx = (int)(nums[i] * k);
buckets[idx][sizes[idx]++] = nums[i];
}
-
// 2. 对各个桶执行排序
for (int i = 0; i < k; ++i) {
qsort(buckets[i], sizes[i], sizeof(float), compare);
}
-
// 3. 合并排序后的桶
int idx = 0;
for (int i = 0; i < k; ++i) {
diff --git a/codes/c/chapter_sorting/quick_sort.c b/codes/c/chapter_sorting/quick_sort.c
index 50a95705d4..6d3986ee5c 100644
--- a/codes/c/chapter_sorting/quick_sort.c
+++ b/codes/c/chapter_sorting/quick_sort.c
@@ -13,19 +13,16 @@ void swap(int nums[], int i, int j) {
nums[j] = tmp;
}
-/* 快速排序类 */
-// 快速排序类-哨兵划分
+/* 哨兵划分 */
int partition(int nums[], int left, int right) {
// 以 nums[left] 为基准数
int i = left, j = right;
while (i < j) {
while (i < j && nums[j] >= nums[left]) {
- // 从右向左找首个小于基准数的元素
- j--;
+ j--; // 从右向左找首个小于基准数的元素
}
while (i < j && nums[i] <= nums[left]) {
- // 从左向右找首个大于基准数的元素
- i++;
+ i++; // 从左向右找首个大于基准数的元素
}
// 交换这两个元素
swap(nums, i, j);
@@ -36,7 +33,7 @@ int partition(int nums[], int left, int right) {
return i;
}
-// 快速排序类-快速排序
+/* 快速排序 */
void quickSort(int nums[], int left, int right) {
// 子数组长度为 1 时终止递归
if (left >= right) {
@@ -49,8 +46,9 @@ void quickSort(int nums[], int left, int right) {
quickSort(nums, pivot + 1, right);
}
-/* 快速排序类(中位基准数优化) */
-// 选取三个候选元素的中位数
+// 以下为中位数优化的快速排序
+
+/* 选取三个候选元素的中位数 */
int medianThree(int nums[], int left, int mid, int right) {
int l = nums[left], m = nums[mid], r = nums[right];
if ((l <= m && m <= r) || (r <= m && m <= l))
@@ -60,7 +58,7 @@ int medianThree(int nums[], int left, int mid, int right) {
return right;
}
-/* 哨兵划分(三数取中值) */
+/* 哨兵划分(三数取中值) */
int partitionMedian(int nums[], int left, int right) {
// 选取三个候选元素的中位数
int med = medianThree(nums, left, (left + right) / 2, right);
@@ -79,7 +77,7 @@ int partitionMedian(int nums[], int left, int right) {
return i; // 返回基准数的索引
}
-// 中位基准数优化-快速排序
+/* 快速排序(三数取中值) */
void quickSortMedian(int nums[], int left, int right) {
// 子数组长度为 1 时终止递归
if (left >= right)
@@ -91,8 +89,9 @@ void quickSortMedian(int nums[], int left, int right) {
quickSortMedian(nums, pivot + 1, right);
}
-/* 快速排序类(尾递归优化) */
-// 快速排序(尾递归优化)
+// 以下为尾递归优化的快速排序
+
+/* 快速排序(尾递归优化) */
void quickSortTailCall(int nums[], int left, int right) {
// 子数组长度为 1 时终止
while (left < right) {
@@ -100,11 +99,15 @@ void quickSortTailCall(int nums[], int left, int right) {
int pivot = partition(nums, left, right);
// 对两个子数组中较短的那个执行快速排序
if (pivot - left < right - pivot) {
- quickSortTailCall(nums, left, pivot - 1); // 递归排序左子数组
- left = pivot + 1; // 剩余未排序区间为 [pivot + 1, right]
+ // 递归排序左子数组
+ quickSortTailCall(nums, left, pivot - 1);
+ // 剩余未排序区间为 [pivot + 1, right]
+ left = pivot + 1;
} else {
- quickSortTailCall(nums, pivot + 1, right); // 递归排序右子数组
- right = pivot - 1; // 剩余未排序区间为 [left, pivot - 1]
+ // 递归排序右子数组
+ quickSortTailCall(nums, pivot + 1, right);
+ // 剩余未排序区间为 [left, pivot - 1]
+ right = pivot - 1;
}
}
}
diff --git a/docs/chapter_preface/about_the_book.md b/docs/chapter_preface/about_the_book.md
index 1e18bdc908..ae386834fc 100644
--- a/docs/chapter_preface/about_the_book.md
+++ b/docs/chapter_preface/about_the_book.md
@@ -30,9 +30,9 @@
## 致谢
-本书在开源社区众多贡献者的共同努力下不断完善。感谢每一位投入时间与精力的撰稿人,他们是(按照 GitHub 自动生成的顺序):krahets、codingonion、nuomi1、Gonglja、Reanon、justin-tse、danielsss、hpstory、S-N-O-R-L-A-X、night-cruise、msk397、gvenusleo、RiverTwilight、gyt95、zhuoqinyue、Zuoxun、Xia-Sang、mingXta、FangYuan33、GN-Yu、IsChristina、xBLACKICEx、guowei-gong、Cathay-Chen、mgisr、JoseHung、qualifier1024、pengchzn、Guanngxu、longsizhuo、L-Super、what-is-me、yuan0221、lhxsm、Slone123c、WSL0809、longranger2、theNefelibatas、xiongsp、JeffersonHuang、hongyun-robot、K3v123、yuelinxin、a16su、gaofer、malone6、Wonderdch、xjr7670、DullSword、Horbin-Magician、NI-SW、reeswell、XC-Zero、XiaChuerwu、yd-j、iron-irax、huawuque404、MolDuM、Nigh、KorsChen、foursevenlove、52coder、bubble9um、youshaoXG、curly210102、gltianwen、fanchenggang、Transmigration-zhou、FloranceYeh、FreddieLi、ShiMaRing、lipusheng、Javesun99、JackYang-hellobobo、shanghai-Jerry、0130w、Keynman、psychelzh、logan-qiu、ZnYang2018、MwumLi、1ch0、Phoenix0415、qingpeng9802、Richard-Zhang1019、QiLOL、Suremotoo、Turing-1024-Lee、Evilrabbit520、GaochaoZhu、ZJKung、linzeyan、hezhizhen、ZongYangL、beintentional、czruby、coderlef、dshlstarr、szu17dmy、fbigm、gledfish、hts0000、boloboloda、iStig、jiaxianhua、wenjianmin、keshida、kilikilikid、lclc6、lwbaptx、liuxjerry、lucaswangdev、lyl625760、chadyi、noobcodemaker、selear、siqyka、syd168、4yDX3906、tao363、wangwang105、weibk、yabo083、yi427、yishangzhang、zhouLion、baagod、ElaBosak233、xb534、luluxia、yanedie、thomasq0、YangXuanyi 和 th1nk3r-ing 。
+本书在开源社区众多贡献者的共同努力下不断完善。感谢每一位投入时间与精力的撰稿人,他们是(按照 GitHub 自动生成的顺序):krahets、Gonglja、nuomi1、codingonion、Reanon、justin-tse、hpstory、danielsss、curtishd、night-cruise、S-N-O-R-L-A-X、msk397、gvenusleo、RiverTwilight、gyt95、zhuoqinyue、Zuoxun、mingXta、hello-ikun、khoaxuantu、FangYuan33、GN-Yu、longsizhuo、mgisr、Cathay-Chen、guowei-gong、xBLACKICEx、K3v123、IsChristina、JoseHung、qualifier1024、pengchzn、Guanngxu、QiLOL、L-Super、WSL0809、Slone123c、lhxsm、yuan0221、what-is-me、rongyi、JeffersonHuang、longranger2、theNefelibatas、yuelinxin、xiongsp、nanlei、a16su、cy-by-side、gaofer、malone6、Wonderdch、hongyun-robot、XiaChuerwu、yd-j、bluebean-cloud、iron-irax、he-weilai、Nigh、MolDuM、Phoenix0415、XC-Zero、SamJin98、reeswell、NI-SW、Horbin-Magician、xjr7670、YangXuanyi、DullSword、iStig、qq909244296、jiaxianhua、wenjianmin、keshida、kilikilikid、lclc6、lwbaptx、luluxia、boloboloda、hts0000、gledfish、fbigm、echo1937、szu17dmy、dshlstarr、coderlef、czruby、beintentional、KeiichiKasai、xb534、ElaBosak233、baagod、zhouLion、yishangzhang、yi427、yabo083、weibk、wangwang105、th1nk3r-ing、tao363、4yDX3906、syd168、siqyka、selear、sdshaoda、noobcodemaker、chadyi、lyl625760、lucaswangdev、liuxjerry、0130w、shanghai-Jerry、JackYang-hellobobo、Javesun99、lipusheng、ShiMaRing、FreddieLi、FloranceYeh、Transmigration-zhou、fanchenggang、gltianwen、Dr-XYZ、curly210102、CuB3y0nd、youshaoXG、bubble9um、fanenr、52coder、foursevenlove、KorsChen、ZongYangL、hezhizhen、linzeyan、ZJKung、GaochaoZhu、yang-le、Evilrabbit520、Turing-1024-Lee、Suremotoo、Allen-Scai、Richard-Zhang1019、qingpeng9802、primexiao、nidhoggfgg、1ch0、MwumLi、ZnYang2018、hugtyftg、logan-qiu、psychelzh 和 Keynman 。
-本书的代码审阅工作由 codingonion、Gonglja、gvenusleo、hpstory、justin-tse、krahets、night-cruise、nuomi1 和 Reanon 完成(按照首字母顺序排列)。感谢他们付出的时间与精力,正是他们确保了各语言代码的规范与统一。
+本书的代码审阅工作由 codingonion、curtishd、Gonglja、gvenusleo、hpstory、justin-tse、krahets、night-cruise、nuomi1 和 Reanon 完成(按照首字母顺序排列)。感谢他们付出的时间与精力,正是他们确保了各语言代码的规范与统一。
在本书的创作过程中,我得到了许多人的帮助。
diff --git a/mkdocs.yml b/mkdocs.yml
index 9a548ce57a..e235acc91d 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -9,7 +9,7 @@ site_dir: site
repo_name: krahets/hello-algo
repo_url: https://github.com/krahets/hello-algo
edit_uri: tree/main/docs
-version: 1.0.0
+version: 1.1.0
# Copyright
copyright: Copyright © 2022-2024 krahets
The website content is licensed under CC BY-NC-SA 4.0
diff --git a/overrides/main.html b/overrides/main.html
index 34d38843e5..36cd9e32a9 100644
--- a/overrides/main.html
+++ b/overrides/main.html
@@ -6,7 +6,7 @@
{% elif config.theme.language == 'zh-Hant' %}
{% set announcements = '紙質書(簡體中文版)已發行,詳情請見這裡' %}
{% elif config.theme.language == 'en' %}
- {% set announcements = 'Feel free to engage in Chinese-to-English translation and pull request review! Please visit #914 for details.' %}
+ {% set announcements = 'Welcome to contribute to Chinese-to-English translation! Please visit #914 for more details.' %}
{% endif %}