亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? algorithms in c, parts 1-4 (fundamental algorithms, data structures, sorting, searching) code.txt

?? Algorithms in C, Parts 1-4 (Fundamental Algorithms, Data Structures, Sorting, Searching) code
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
  { int i, j;    for (i = l; i < r; i++)      { int min = i;        for (j = i+1; j <= r; j++)             if (less(a[j], a[min])) min = j;        exch(a[i], a[min]);      }   }-----void insertion(Item a[], int l, int r)  { int i;    for (i = l+1; i <= r; i++) compexch(a[l], a[i]);    for (i = l+2; i <= r; i++)      { int j = i; Item v = a[i];         while (less(v, a[j-1]))          { a[j] = a[j-1]; j--; }        a[j] = v;       }   }-----void bubble(Item a[], int l, int r)  { int i, j;    for (i = l; i < r; i++)      for (j = r; j > i; j--)        compexch(a[j-1], a[j]);  }-----void shellsort(Item a[], int l, int r)  { int i, j, h;     for (h = 1; h <= (r-l)/9; h = 3*h+1) ;    for ( ; h > 0; h /= 3)      for (i = l+h; i <= r; i++)        { int j = i; Item v = a[i];           while (j >= l+h && less(v, a[j-h]))            { a[j] = a[j-h]; j -= h; }          a[j] = v;         }   }-----#include <stdlib.h>#include "Item.h"#include "Array.h"main(int argc, char *argv[])  { int i, N = atoi(argv[1]), sw = atoi(argv[2]);    Item *a = malloc(N*sizeof(Item));    if (sw) randinit(a, N); else scaninit(a, &N);     sort(a, 0, N-1);    show(a, 0, N-1);  }-----void randinit(Item [], int);void scaninit(Item [], int *);void show(Item [], int, int);void sort(Item [], int, int);-----#include <stdio.h>                   #include <stdlib.h>                   #include "Item.h"#include "Array.h"void randinit(Item a[], int N)  { int i;    for (i = 0; i < N; i++) a[i] = ITEMrand();  }void scaninit(Item a[], int *N)  { int i = 0;    for (i = 0; i < *N; i++)       if (ITEMscan(&a[i]) == EOF) break;    *N = i;  }void show(itemType a[], int l, int r)  { int i;    for (i = l; i <= r; i++) ITEMshow(a[i]);     printf("\n");  }  -----typedef double Item;#define key(A) (A)#define less(A, B) (key(A) < key(B))#define exch(A, B) { Item t = A; A = B; B = t; } #define compexch(A, B) if (less(B, A)) exch(A, B)Item ITEMrand(void); int ITEMscan(Item *);void ITEMshow(Item);-----#include <stdio.h>#include <stdlib.h>#include "Item.h"double ITEMrand(void)          { return 1.0*rand()/RAND_MAX; }     int ITEMscan(double *x)          { return scanf("%f", x); }    void ITEMshow(double x)          { printf("%7.5f ", x); }  -----#include <stdio.h>#include <stdlib.h>#include <string.h>#include "Item.h"static char buf[100000];static int cnt = 0;int ITEMscan(char **x)  { int t;    *x = &buf[cnt];     t = scanf("%s", *x); cnt += strlen(*x)+1;    return t;  }  void ITEMshow(char *x)   { printf("%s ", x); }  -----struct record { char name[30]; int num; };typedef struct record* Item;#define exch(A, B) { Item t = A; A = B; B = t; } #define compexch(A, B) if (less(B, A)) exch(A, B); int less(Item, Item);Item ITEMrand(); int ITEMscan(Item *);void ITEMshow(Item);-----struct record data[maxN];int Nrecs = 0;int ITEMscan(struct record **x)  {     *x = &data[Nrecs];    return scanf("%30s %d\n",              data[Nrecs].name, &data[Nrecs++].num);  }void ITEMshow(struct record *x)  { printf("%3d %-30s\n", x->num, x->name); }  -----insitu(dataType data[], int a[], int N)  { int i, j, k;     for (i = 0; i < N; i++)       { dataType v = data[i];         for (k = i; a[k] != i; k = a[j], a[j] = j)          { j = k; data[k] = data[a[k]]; }        data[k] = v; a[k] = k;      }   }  -----typedef struct node *link;struct node { Item item;  link next; };link NEW(Item, link);link init(int);void show(link);link sort(link);-----link listselection(link h)  { link max, t, out = NULL;    while (h->next != NULL)      {         max = findmax(h);        t = max->next; max->next = t->next;        t->next = out; out = t;      }     h->next = out;    return(h);  }-----void distcount(int a[], int l, int r)  { int i, j, cnt[M];     int b[maxN];    for (j = 0; j <  M; j++) cnt[j] = 0;    for (i = l; i <= r; i++) cnt[a[i]+1]++;    for (j = 1; j <  M; j++) cnt[j] += cnt[j-1];    for (i = l; i <= r; i++) b[cnt[a[i]]++] = a[i];    for (i = l; i <= r; i++) a[i] = b[i];  } -----void insertion(itemType a[], int l, int r)  { int i, j;     for (i = l+1; i <= r; i++)      for (j = i; j > l; j--)        if (less(a[j-1], a[j])) break;        else exch(a[j-1], a[j]);  }----------CHAPTER 7. Quicksort----- int partition(Item a[], int l, int r);void quicksort(Item a[], int l, int r)  { int i;    if (r <= l) return;    i = partition(a, l, r);    quicksort(a, l, i-1);    quicksort(a, i+1, r);  }-----int partition(Item a[], int l, int r)  { int i = l-1, j = r; Item v = a[r];    for (;;)      {         while (less(a[++i], v)) ;        while (less(v, a[--j])) if (j == l) break;        if (i >= j) break;        exch(a[i], a[j]);      }    exch(a[i], a[r]);    return i;  }-----#define push2(A, B)  push(B); push(A);void quicksort(Item a[], int l, int r)  { int i;    stackinit(); push2(l, r);    while (!stackempty())      {        l = pop(); r = pop();         if (r <= l) continue;        i = partition(a, l, r);        if (i-l > r-i)          { push2(l, i-1); push2(i+1, r); }        else          { push2(i+1, r); push2(l, i-1); }      }  }-----#define M 10void quicksort(Item a[], int l, int r)  { int i;     if (r-l <= M) return;    exch(a[(l+r)/2], a[r-1]);    compexch(a[l], a[r-1]);       compexch(a[l], a[r]);         compexch(a[r-1], a[r]);    i = partition(a, l+1, r-1);    quicksort(a, l, i-1);    quicksort(a, i+1, r);  } void sort(Item a[], int l, int r)  {     quicksort(a, l, r);    insertion(a, l, r);  }-----#define eq(A, B) (!less(A, B) && !less(B, A))void quicksort(Item a[], int l, int r)  { int i, j, k, p, q; Item v;    if (r <= l) return;    v = a[r]; i = l-1; j = r; p = l-1; q = r;    for (;;)      {         while (less(a[++i], v)) ;        while (less(v, a[--j])) if (j == l) break;        if (i >= j) break;        exch(a[i], a[j]);        if (eq(a[i], v)) { p++; exch(a[p], a[i]); }        if (eq(v, a[j])) { q--; exch(a[q], a[j]); }      }    exch(a[i], a[r]); j = i-1; i = i+1;    for (k = l  ; k < p; k++, j--) exch(a[k], a[j]);    for (k = r-1; k > q; k--, i++) exch(a[k], a[i]);    quicksort(a, l, j);    quicksort(a, i, r);   }-----select(Item a[], int l, int r, int k)  { int i;    if (r <= l) return;    i = partition(a, l, r);    if (i > k) select(a, l, i-1, k);    if (i < k) select(a, i+1, r, k);  }-----select(Item a[], int l, int r, int k)  {     while (r > l)      { int i = partition(a, l, r);        if (i >= k) r = i-1;        if (i <= k) l = i+1;      }   }----------CHAPTER 8. Mergesort-----mergeAB(Item c[], Item a[], int N, Item b[], int M )  { int i, j, k;    for (i = 0, j = 0, k = 0; k < N+M; k++)      {        if (i == N) { c[k] = b[j++]; continue; }        if (j == M) { c[k] = a[i++]; continue; }        c[k] = (less(a[i], b[j])) ? a[i++] : b[j++];      }  }-----Item aux[maxN];merge(Item a[], int l, int m, int r)  { int i, j, k;    for (i = m+1; i > l; i--) aux[i-1] = a[i-1];    for (j = m; j < r; j++) aux[r+m-j] = a[j+1];    for (k = l; k <= r; k++)       if (less(aux[i], aux[j]))           a[k] = aux[i++]; else a[k] = aux[j--];  }-----void mergesort(Item a[], int l, int r)  { int m = (r+l)/2;    if (r <= l) return;    mergesort(a, l, m);      mergesort(a, m+1, r);    merge(a, l, m, r);  }-----#define maxN 10000Item aux[maxN];void mergesortABr(Item a[], Item b[], int l, int r)  { int m = (l+r)/2;    if (r-l <= 10) { insertion(a, l, r); return; }    mergesortABr(b, a, l, m);      mergesortABr(b, a, m+1, r);    mergeAB(a+l, b+l, m-l+1, b+m+1, r-m);  }void mergesortAB(Item a[], int l, int r)  { int i;    for (i = l; i <= r; i++) aux[i] = a[i];    mergesortABr(a, aux, l, r);  }-----#define min(A, B) (A < B) ? A : Bvoid mergesortBU(Item a[], int l, int r)  { int i, m;    for (m = 1; m < r-l; m = m+m)      for (i = l; i <= r-m; i += m+m)        merge(a, i, i+m-1, min(i+m+m-1, r));  }-----link merge(link a, link b)  { struct node head; link c = &head;    while ((a != NULL) && (b != NULL))      if (less(a->item, b->item))        { c->next = a; c = a; a = a->next; }      else        { c->next = b; c = b; b = b->next; }    c->next = (a == NULL) ? b : a;    return head.next;  }-----link merge(link a, link b);link mergesort(link c)  { link a, b;    if (c->next == NULL) return c;    a = c; b = c->next;    while ((b != NULL) && (b->next != NULL))      { c = c->next; b = b->next->next; }    b = c->next; c->next = NULL;    return merge(mergesort(a), mergesort(b));  }-----link mergesort(link t)  { link u;    for (Qinit(); t != NULL; t = u)       { u = t->next; t->next = NULL; Qput(t); }    t = Qget();         while (!Qempty())      { Qput(t); t = merge(Qget(), Qget()); }    return t;  }----------CHAPTER 9. Priority Queues and Heapsort-----void PQinit(int); int PQempty();void PQinsert(Item);Item PQdelmax();-----#include <stdlib.h>#include "Item.h"   static Item *pq; static int N;void PQinit(int maxN)  { pq = malloc(maxN*sizeof(Item)); N = 0; } int PQempty()   { return N == 0; }void PQinsert(Item v)  { pq[N++] = v; }Item PQdelmax()  { int j, max = 0;    for (j = 1; j < N; j++)      if (less(pq[max], pq[j])) max = j;    exch(pq[max], pq[N-1]);      return pq[--N];  }-----fixUp(Item a[], int k)  {    while (k > 1 && less(a[k/2], a[k]))      { exch(a[k], a[k/2]); k = k/2; }  }-----fixDown(Item a[], int k, int N)  { int j;    while (2*k <= N)      { j = 2*k;        if (j < N && less(a[j], a[j+1])) j++;        if (!less(a[k], a[j])) break;        exch(a[k], a[j]); k = j;      }  }-----#include <stdlib.h>#include "Item.h"   static Item *pq; static int N;void PQinit(int maxN)  { pq = malloc((maxN+1)*sizeof(Item)); N = 0; } int PQempty()   { return N == 0; }void PQinsert(Item v)  { pq[++N] = v; fixUp(pq, N); }Item PQdelmax()  {     exch(pq[1], pq[N]);     fixDown(pq, 1, N-1);     return pq[N--];   }-----void PQsort(Item a[], int l, int r)  { int k;    PQinit();    for (k = l; k <= r; k++) PQinsert(a[k]);    for (k = r; k >= l; k--) a[k] = PQdelmax();  }-----#define pq(A) a[l-1+A]void heapsort(Item a[], int l, int r)  { int k, N = r-l+1;    for (k = N/2; k >= 1; k--)       fixDown(&pq(0), k, N);    while (N > 1)       { exch(pq(1), pq(N));         fixDown(&pq(0), 1, --N); }  }-----typedef struct pq* PQ;typedef struct PQnode* PQlink;    PQ PQinit();   int PQempty(PQ);PQlink PQinsert(PQ, Item);  Item PQdelmax(PQ);  void PQchange(PQ, PQlink, Item);  void PQdelete(PQ, PQlink);  void PQjoin(PQ, PQ);-----#include <stdlib.h>#include "Item.h"#include "PQfull.h"struct PQnode { Item key; PQlink prev, next; };struct pq { PQlink head, tail; };PQ PQinit()  { PQ pq = malloc(sizeof *pq);    PQlink h = malloc(sizeof *h),           t = malloc(sizeof *t);    h->prev = t; h->next = t;    t->prev = h; t->next = h;    pq->head = h; pq->tail = t;    return pq;  }int PQempty(PQ pq)  { return pq->head->next->next == pq->head; }PQlink PQinsert(PQ pq, Item v)  { PQlink t = malloc(sizeof *t);    t->key = v;     t->next = pq->head->next; t->next->prev = t;    t->prev = pq->head; pq->head->next = t;  }Item PQdelmax(PQ pq)  { Item max; struct PQnode *t, *x = pq->head->next;    for (t = x; t->next != pq->head; t = t->next)      if (t->key > x->key) x = t;    max = x->key;     x->next->prev = x->prev;     x->prev->next = x->next;     free(x); return max;  }-----void PQchange(PQ pq, PQlink x, Item v)  { x->key = v; }  void PQdelete(PQ pq, PQlink x)  { PQlink t;    t->next->prev = t->prev;    t->prev->next = t->next;    free(t);  }  void PQjoin(PQ a, PQ b)  { PQlink atail, bhead;    a->tail->prev->next = b->head->next;    b->head->next->prev = a->tail->prev;    a->head->prev = b->tail;     b->tail->next = a->head;    free(a->tail); free(b->head);  }----- int less(int, int);void PQinit(); int PQempty();void PQinsert(int); int PQdelmax();void PQchange(int);void PQdelete(int);-----#include "PQindex.h"typedef int Item;static int N, pq[maxPQ+1], qp[maxPQ+1];void exch(int i, int j)  { int t;    t = i; i = j; j = t;    t = qp[i]; qp[i] = qp[j]; qp[j] = t;  }void PQinit() { N = 0; } int PQempty() { return !N; }void PQinsert(int k)  { qp[k] = ++N; pq[N] = k; fixUp(pq, N); } int PQdelmax()  {     exch(pq[1], pq[N]);     fixDown(pq, 1, --N);     return pq[N+1];   }void PQchange(int k)  { fixUp(pq, qp[k]); fixDown(pq, qp[k], N); }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av色综合久久天堂av综合| 日本一区二区免费在线| 久久视频一区二区| 亚洲尤物视频在线| 国产高清视频一区| 欧美一区午夜视频在线观看| 亚洲欧美福利一区二区| 国产精品99久久久久久有的能看| 欧美日韩不卡在线| 亚洲精品国久久99热| 国产91在线观看丝袜| 欧美大片在线观看| 日韩av一区二区三区| 在线观看免费亚洲| 亚洲欧洲av在线| 不卡的电影网站| 亚洲国产精品成人久久综合一区| 美女在线观看视频一区二区| 欧美色手机在线观看| 亚洲欧美电影院| 91丨porny丨首页| 国产精品电影院| 99re成人精品视频| 久久午夜色播影院免费高清| 免费三级欧美电影| 欧美一区二区人人喊爽| 日韩精品亚洲一区二区三区免费| 欧美在线免费观看视频| 亚洲国产毛片aaaaa无费看| 91黄色免费观看| 亚洲综合在线电影| 欧美性生活影院| 五月婷婷综合网| 日韩一二在线观看| 久久国产剧场电影| 国产日本欧美一区二区| 粉嫩高潮美女一区二区三区| 中文字幕在线不卡| 色呦呦一区二区三区| 亚洲精品免费在线观看| 日本高清不卡视频| 香蕉乱码成人久久天堂爱免费| 欧美久久久久中文字幕| 青青草97国产精品免费观看| 精品国产乱码久久久久久浪潮| 裸体歌舞表演一区二区| 亚洲国产高清在线观看视频| 91网址在线看| 亚洲妇女屁股眼交7| 欧美一区二区大片| 成人精品一区二区三区四区| 伊人色综合久久天天人手人婷| 欧美三级三级三级| 精品影视av免费| 日韩一区有码在线| 51久久夜色精品国产麻豆| 国产乱淫av一区二区三区| 国产精品久久夜| 欧美久久久久久久久| 国产一区二区三区免费| 亚洲欧美日韩国产综合在线| 日韩一区和二区| 成人av免费在线播放| 午夜精品久久久久久久99樱桃| 日韩欧美一级片| 99re8在线精品视频免费播放| 亚洲第一二三四区| 国产日韩欧美电影| 日韩片之四级片| 国产91在线观看| 午夜精品久久久| 中文乱码免费一区二区| 欧美精品在线一区二区三区| 国产精品一区二区91| 亚洲成av人片观看| 国产片一区二区| 日韩一二三四区| 91福利在线免费观看| 国产原创一区二区| 亚洲a一区二区| 国产精品传媒在线| 久久色在线视频| 欧美一区二区三区四区五区| 91碰在线视频| 成人免费看的视频| 精品一区二区三区av| 婷婷久久综合九色国产成人 | 中文字幕中文字幕在线一区| 欧美日韩一区中文字幕| 北条麻妃一区二区三区| 激情小说欧美图片| 日韩高清国产一区在线| 曰韩精品一区二区| 亚洲欧洲成人精品av97| 国产嫩草影院久久久久| 精品久久久久久久久久久院品网| 欧美片网站yy| 欧美亚洲日本国产| 色婷婷综合五月| 99国产欧美另类久久久精品| 国产成人自拍高清视频在线免费播放| 男男成人高潮片免费网站| 亚洲aaa精品| 午夜精品久久久久久| 亚洲一区自拍偷拍| 一区二区三区四区乱视频| 国产精品卡一卡二卡三| 国产日韩欧美综合一区| 国产欧美日韩三区| 久久久精品蜜桃| 久久久久99精品一区| 久久精品视频免费| 国产色91在线| 中文字幕精品一区二区三区精品| 久久亚区不卡日本| 精品久久久久久久久久久久包黑料 | 亚洲美女屁股眼交3| 国产精品久久精品日日| 国产精品热久久久久夜色精品三区| 久久新电视剧免费观看| 国产欧美日韩在线观看| 成人免费在线观看入口| 亚洲美女免费在线| 亚洲国产视频在线| 日本大胆欧美人术艺术动态| 麻豆一区二区99久久久久| 精品一区二区三区不卡| 懂色av中文字幕一区二区三区| 国产·精品毛片| 日本大香伊一区二区三区| 一本到不卡免费一区二区| 欧美视频一区二| 91精品国产全国免费观看| 精品福利二区三区| 亚洲欧洲精品一区二区精品久久久 | 欧美精品免费视频| 精品日韩在线观看| 国产日韩欧美高清在线| 一区二区成人在线视频| 日韩和欧美的一区| 国产露脸91国语对白| 一本久道中文字幕精品亚洲嫩| 欧美精选午夜久久久乱码6080| 久久免费美女视频| 亚洲精品va在线观看| 毛片av一区二区| 99精品1区2区| 欧美一区二区三区视频免费播放| 久久精品在线观看| 亚洲国产精品自拍| 国产盗摄一区二区三区| 91国产丝袜在线播放| 久久女同互慰一区二区三区| 成人欧美一区二区三区| 精品系列免费在线观看| av色综合久久天堂av综合| 91精品福利在线一区二区三区 | 欧美一级二级三级蜜桃| 欧美极品aⅴ影院| 亚洲成a天堂v人片| 成人涩涩免费视频| 日韩一区二区麻豆国产| 中文字幕在线不卡一区二区三区| 日本一区中文字幕| 日本韩国一区二区三区视频| 欧美精品一区二| 亚洲午夜精品在线| 成人久久久精品乱码一区二区三区| 精品欧美乱码久久久久久 | 欧美成人vr18sexvr| 亚洲美女视频一区| 国产成人h网站| 欧美一级日韩免费不卡| 夜夜嗨av一区二区三区网页| 国产在线播放一区| 日韩视频一区在线观看| 亚洲一区在线看| 99视频精品在线| 日本一区二区三区四区在线视频 | 亚洲欧美色综合| 国产不卡在线播放| 久久综合中文字幕| 蜜桃久久久久久久| 91精品一区二区三区在线观看| 亚洲欧美怡红院| 91影视在线播放| 亚洲天堂福利av| 成人黄色777网| 国产欧美日韩视频一区二区| 久久国产日韩欧美精品| 欧美一区二区三区系列电影| 婷婷一区二区三区| 欧美性猛片aaaaaaa做受| 亚洲一区二区视频在线观看| 91老司机福利 在线| 日韩理论在线观看| 99re这里都是精品| 亚洲另类在线制服丝袜| 色88888久久久久久影院按摩| 亚洲欧洲韩国日本视频|