算法模板
Posted pusidun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法模板相关的知识,希望对你有一定的参考价值。
基础算法
快速排序
/*
** quick sort array [lo, hi]
**/
void quick_sort(int a[], int lo, int hi) {
if(lo >= hi)
return;
int i = lo - 1, j = hi + 1, mid = lo + hi >>1;
while(i < j) {
do i++; while(a[i] < a[mid]);
do j--; while(a[j] > a[mid]);
if(i < j) swap(a[i], a[j]);
}
quick_sort(a, lo, mid);
quick_sort(a, mid+1, hi);
}
归并排序
/*
** merge sort array [lo, hi]
*/
void merge_sort(int a[], int lo, int hi) {
if(lo >= hi) return;
int mid = lo + hi >> 1;
merge_sort(a, lo, mid);
merge_sort(a, mid+1, hi);
int i = lo, j = mid+1, k=0;
int* tmp = new int(hi-lo+1);
while(i<=mid && j<=hi) {
if(a[i] < a[j])
tmp[k++] = a[i++];
else
tmp[k++] = a[j++];
}
while(i<=mid)
tmp[k++] = a[i++];
while(j<=hi)
tmp[k++] = a[j++];
for(int m=0; m<hi-lo+1; m++) a[m] = tmp[m];
}
数据结构
以上是关于算法模板的主要内容,如果未能解决你的问题,请参考以下文章