Loading docs/basic/quick-sort.md +30 −34 Original line number Diff line number Diff line Loading @@ -53,23 +53,19 @@ ```cpp struct Range { int start, end; Range(int s = 0, int e = 0) { start = s, end = e; } Range(int s = 0, int e = 0) { start = s, end = e; } }; template <typename T> void quick_sort(T arr[], const int len) { if (len <= 0) return; // 避免 len 等于负值时宣告堆叠阵列宕机 if (len <= 0) return; // 避免 len 等于负值时宣告堆叠阵列宕机 // r[]模拟堆叠,p为数量,r[p++]为push,r[--p]为pop且取得元素 Range r[len]; int p = 0; r[p++] = Range(0, len - 1); while (p) { Range range = r[--p]; if (range.start >= range.end) continue; if (range.start >= range.end) continue; T mid = arr[range.end]; int left = range.start, right = range.end - 1; while (left < right) { Loading Loading
docs/basic/quick-sort.md +30 −34 Original line number Diff line number Diff line Loading @@ -53,23 +53,19 @@ ```cpp struct Range { int start, end; Range(int s = 0, int e = 0) { start = s, end = e; } Range(int s = 0, int e = 0) { start = s, end = e; } }; template <typename T> void quick_sort(T arr[], const int len) { if (len <= 0) return; // 避免 len 等于负值时宣告堆叠阵列宕机 if (len <= 0) return; // 避免 len 等于负值时宣告堆叠阵列宕机 // r[]模拟堆叠,p为数量,r[p++]为push,r[--p]为pop且取得元素 Range r[len]; int p = 0; r[p++] = Range(0, len - 1); while (p) { Range range = r[--p]; if (range.start >= range.end) continue; if (range.start >= range.end) continue; T mid = arr[range.end]; int left = range.start, right = range.end - 1; while (left < right) { Loading