首页 > 编程语言 > 详细

算法模板

时间:2020-01-28 22:10:00      阅读:72      评论:0      收藏:0      [点我收藏+]

基础算法

快速排序

/*
** 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];
} 

数据结构

算法模板

原文:https://www.cnblogs.com/pusidun/p/12239001.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!