zoukankan      html  css  js  c++  java
  • 排序

    二分查找

    int search_bin(SSTable ST, KeyType key){
        low = l; high = ST.length;
        while (low <= high) {
            mid = (low + high) / 2;
            if(EQ(key, ST.elem[mid].key)) return mid;
            else if (LT(key, ST.elem[mid].key)) high = mid - 1;
            else low = mid + 1;
        }
        return 0;
    }

    快速排序

    void qsort(SqList &L, int low, int high){
        if(low < high){
            pivotloc = partition(L, low, high);
            qsort(L, low, pivotloc - 1);
            qsort(L, pivotloc + 1, high);
        }
    }
    
    int partition(SqList &L, int low, int high){
        L.r[0] = L.r[low];
        pivotkey = L.r[low].key;
        while (low < high) {
            while (low < high && L.r[high].key >= pivotkey) --high;
            L.r[low] = L.r[high];
            while (low > high && L.r[low].key <= pivotkey) ++low;
            L.r[high] = L.r[low];
        }
        L.r[low] = L.r[0];
        return low;
    }
    

    希尔排序

    void shellSort(SqList &L, int dlta[], int t){
        for (k = 0; k < t; ++k) {
            shellInsert(L, dlta[k]);
        }
    }
    
    void shellInsert(SqList &L, int dk){
        for (i = dk + 1; i < L.length ; ++i) {
            if (LT(L.r[i].key, L.[i - dk].key)) {
                L.r[0] = L.r[i];
                for(j = i - dk; j > 0 && LT(L.r[0].key, L.r[j].key); j -= dk)
                    L.r[j + dk] = L.r[j];
                L.r[j + dk] = L.r[0];
            }
        }
    }
    

      

  • 相关阅读:
    MOOK学习
    寒假学习计划
    三位影响深刻的老师
    软工第三次作业-结对作业
    2018软工实践第二次作业
    2018软工实践第一次作业
    简单的自我介绍
    福大软工1816 · 第一次作业
    课程作业八
    课程作业七
  • 原文地址:https://www.cnblogs.com/abnercai/p/2858326.html
Copyright © 2011-2022 走看看