【代码模板】汇总
基础算法
排序
快速排序
- void quick_sort(int q[], int l, int r)
- {
- if (l >= r) return;
-
- int i = l - 1, j = r + 1, 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 merge_sort(int q[], int l, int r)
- {
- if (l >= r) return;
-
- int mid = l + r >> 1;
- merge_sort(q, l, mid);
- merge_sort(q, mid + 1, r);
-
- int k = 0, i = l, j = mid + 1;
- while (i <= mid && j <= r)
- if (q[i] <= q[j]) tmp[k ++ ] = q[i ++ ];
- else tmp[k ++ ] = q[j ++ ];
-
- while (i <= mid) tmp[k ++ ] = q[i ++ ];
- while (j <= r) tmp[k ++ ] = q[j ++ ];
-
- for (i = l, j = 0; i <= r; i ++, j ++ ) q[i] = tmp[j];
- }
数据结构
搜索与图论
数学知识
版权声明:
作者:Zhang, Hongxing
链接:http://zhx.info/archives/592
来源:张鸿兴的学习历程
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
文章目录
排序
快速排序
归并排序
关闭