【代码模板】汇总

基础算法

排序

快速排序

  • 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
分享
二维码
< <上一篇
下一篇>>
文章目录

排序

快速排序

归并排序

关闭
目 录