码迷,mamicode.com
首页 > 编程语言 > 详细

算法模板

时间:2020-01-28 23:15:40      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:lse   quic   pre   排序   算法   i++   结构   归并排序   目录   

基础算法

快速排序

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

数据结构

算法模板

标签:lse   quic   pre   排序   算法   i++   结构   归并排序   目录   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!