亚洲欧美第一页_禁久久精品乱码_粉嫩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 頁
字號:
      void join(PQ<Item>&);  };-----  Item getmax()    { Item max; link x = head->next;      for (link t = x; t->next != head; t = t->next)        if (x->item < t->item) x = t;      max = x->item;       remove(x);       return max;    }  void change(handle x, Item v)    { x->key = v; }    void remove(handle x)    {      x->next->prev = x->prev;      x->prev->next = x->next;      delete x;    }    void join(PQ<Item>& p)    {      tail->prev->next = p.head->next;      p.head->next->prev = tail->prev;      head->prev = p.tail;       p.tail->next = head;      delete tail; delete p.head;      tail = p.tail;    }-----template <class Index>class PQ   {    private:      // Implementation-dependent code    public:      PQ(int);      int empty() const;      void insert(Index);      Index getmax();      void change(Index);      void remove(Index);  };-----template <class Index>class PQ   {    private:      int N; Index* pq; int* qp;      void exch(Index i, Index j)        { int t;          t = qp[i]; qp[i] = qp[j]; qp[j] = t;          pq[qp[i]] = i; pq[qp[j]] = j;        }    void fixUp(Index a[], int k);    void fixDown(Index a[], int k, int N);    public:      PQ(int maxN)        { pq = new Index[maxN+1];           qp = new int[maxN+1];  N = 0; }      int empty() const        { return N == 0; }      void insert(Index v)        { pq[++N] = v; qp[v] = N; fixUp(pq, N); }      Index getmax()        {           exch(pq[1], pq[N]);           fixDown(pq, 1, N-1);           return pq[N--];         }      void change(Index k)        { fixUp(pq, qp[k]); fixDown(pq, qp[k], N); }  };-----static link pair(link p, link q)  {    if (p->item < q->item)       { p->r = q->l; q->l = p; return q; }    else { q->r = p->l; p->l = q; return p; }  }-----handle insert(Item v)  { link t = new node(v), c = t;    for (int i = 0; i < maxBQsize; i++)      {        if (c == 0) break;        if (bq[i] == 0) { bq[i] = c; break; }        c = pair(c, bq[i]); bq[i] = 0;      }    return t;  }-----Item getmax()  { int i, max; Item v = 0;     link* temp = new link[maxBQsize];    for (i = 0, max = -1; i < maxBQsize; i++)      if (bq[i] != 0)         if ((max == -1) || (v < bq[i]->item))          { max = i; v = bq[max]->item; }    link x = bq[max]->l;     for (i = max; i < maxBQsize; i++) temp[i] = 0;     for (i = max ; i > 0; i--)      { temp[i-1] = x; x = x->r; temp[i-1]->r = 0; }    delete bq[max]; bq[max] = 0;    BQjoin(bq, temp);      delete temp;    return v;  }      -----static inline int test(int C, int B, int A)  { return 4*C + 2*B + 1*A; }static void BQjoin(link *a, link *b)  { link c = 0;    for (int i = 0; i < maxBQsize; i++)      switch(test(c != 0, b[i] != 0, a[i] != 0))        {          case 2: a[i] = b[i]; break;          case 3: c = pair(a[i], b[i]);                   a[i] = 0; break;          case 4: a[i] = c; c = 0; break;          case 5: c = pair(c, a[i]);                   a[i] = 0; break;          case 6:           case 7: c = pair(c, b[i]); break;        }  }----------CHAPTER 10. Radix Sorting-----template <class Item>void quicksortB(Item a[], int l, int r, int d)  { int i = l, j = r;    if (r <= l || d > bitsword) return;    while (j != i)      {         while (digit(a[i], d) == 0 && (i < j)) i++;        while (digit(a[j], d) == 1 && (j > i)) j--;        exch(a[i], a[j]);      }    if (digit(a[r], d) == 0) j++;    quicksortB(a, l, j-1, d+1);    quicksortB(a, j, r, d+1);  }template <class Item>void sort(Item a[], int l, int r)  { quicksortB(a, l, r, 0); }-----#define bin(A) l+count[A]template <class Item>void radixMSD(Item a[], int l, int r, int d)  { int i, j, count[R+1];     static Item aux[maxN];    if (d > bytesword) return;    if (r-l <= M) { insertion(a, l, r); return; }    for (j = 0; j < R; j++) count[j] = 0;    for (i = l; i <= r; i++)       count[digit(a[i], d) + 1]++;    for (j = 1; j < R; j++)       count[j] += count[j-1];    for (i = l; i <= r; i++)       aux[count[digit(a[i], d)]++] = a[i];    for (i = l; i <= r; i++) a[i] = aux[i-l];    radixMSD(a, l, bin(0)-1, d+1);    for (j = 0; j < R-1; j++)      radixMSD(a, bin(j), bin(j+1)-1, d+1);  }-----#define ch(A) digit(A, d)template <class Item>void quicksortX(Item a[], int l, int r, int d)  {     int i, j, k, p, q; int v;    if (r-l <= M) { insertion(a, l, r); return; }    v = ch(a[r]); i = l-1; j = r; p = l-1; q = r;    while (i < j)      {         while (ch(a[++i]) < v) ;        while (v < ch(a[--j])) if (j == l) break;        if (i > j) break;        exch(a[i], a[j]);        if (ch(a[i])==v) { p++; exch(a[p], a[i]); }        if (v==ch(a[j])) { q--; exch(a[j], a[q]); }      }    if (p == q)       { if (v != '\0') quicksortX(a, l, r, d+1);         return; }    if (ch(a[i]) < v) i++;    for (k = l; k <= p; k++, j--) exch(a[k], a[j]);    for (k = r; k >= q; k--, i++) exch(a[k], a[i]);    quicksortX(a, l, j, d);    if ((i == r) && (ch(a[i]) == v)) i++;    if (v != '\0') quicksortX(a, j+1, i-1, d+1);     quicksortX(a, i, r, d);   }-----template <class Item>void radixLSD(Item a[], int l, int r)  { static Item aux[maxN];    for (int d = bytesword-1; d >= 0; d--)      {        int i, j, count[R+1];         for (j = 0; j < R; j++) count[j] = 0;        for (i = l; i <= r; i++)           count[digit(a[i], d) + 1]++;        for (j = 1; j < R; j++)           count[j] += count[j-1];        for (i = l; i <= r; i++)           aux[count[digit(a[i], d)]++] = a[i];        for (i = l; i <= r; i++) a[i] = aux[i-l];      }  } ----------CHAPTER 11. Special-Purpose Sorts-----template <class Item>void shuffle(Item a[], int l, int r)  { int i, j, m = (l+r)/2;    static Item aux[maxN];    for (i = l, j = 0; i <= r; i+=2, j++)      { aux[i] = a[l+j]; aux[i+1] = a[m+1+j]; }    for (i = l; i <= r; i++) a[i] = aux[i];  }template <class Item>void unshuffle(Item a[], int l, int r)  { int i, j, m = (l+r)/2;    static Item aux[maxN];    for (i = l, j = 0; i <= r; i+=2, j++)      { aux[l+j] = a[i]; aux[m+1+j] = a[i+1]; }    for (i = l; i <= r; i++) a[i] = aux[i];  }-----template <class Item>void merge(Item a[], int l, int m, int r)  {     if (r == l+1) compexch(a[l], a[r]);    if (r < l+2) return;    unshuffle(a, l, r);    merge(a, l, (l+m)/2, m);     merge(a, m+1, (m+1+r)/2, r);    shuffle(a, l, r);    for (int i = l+1; i < r; i+=2)       compexch(a[i], a[i+1]);  }-----template <class Item>void merge(Item a[], int l, int m, int r)  { int N = r-l+1;  // assuming N/2 is m-l+1    for (int k = N/2; k > 0; k /= 2)      for (int j = k % (N/2); j+k < N; j += k+k)         for (int i = 0; i < k; i++)           compexch(a[l+j+i], a[l+j+i+k]);  }-----template <class Item>void batchersort(Item a[], int l, int r)  { int N = r-l+1;    for (int p = 1; p < N; p += p)      for (int k = p; k > 0; k /= 2)        for (int j = k%p; j+k < N; j += (k+k))           for (int i = 0; i < N-j-k; i++)             if ((j+i)/(p+p) == (j+i+k)/(p+p))               compexch(a[l+j+i], a[l+j+i+k]);  }--------------------CHAPTER 12. Symbol Tables and BSTs-----#include <stdlib.h>#include <iostream.h>static int maxKey = 1000;typedef int Key;class Item   {     private:      Key keyval;       float info;    public:      Item()         { keyval = maxKey; }       Key key()        { return keyval; }      int null()        { return keyval == maxKey; }      void rand()        { keyval = 1000*::rand()/RAND_MAX;             info = 1.0*::rand()/RAND_MAX; }        int scan(istream& is = cin)        { return (is >> keyval >> info) != 0; }      void show(ostream& os = cout)        { os << keyval << " " << info << endl; }   }; ostream& operator<<(ostream& os, Item& x)  { x.show(os); return os; }-----template <class Item, class Key>class ST   {    private:      // Implementation-dependent code    public:      ST(int);      int count();      Item search(Key) ;      void insert(Item);      void remove(Item);      Item select(int);      void show(ostream&);  };-----#include <iostream.h>#include <stdlib.h>#include "Item.cxx"#include "ST.cxx"int main(int argc, char *argv[])  { int N, maxN = atoi(argv[1]), sw = atoi(argv[2]);    ST<Item, Key> st(maxN);    for (N = 0; N < maxN; N++)      { Item v;         if (sw) v.rand(); else if (!v.scan()) break;        if (!(st.search(v.key())).null()) continue;        st.insert(v);       }    st.show(cout); cout << endl;    cout << N << " keys" << endl;    cout << st.count() << " distinct keys" << endl;  }-----template <class Item, class Key>class ST   {    private:      Item nullItem, *st;      int M;    public:      ST(int maxN)        { M = nullItem.key(); st = new Item[M]; }      int count()        { int N = 0;           for (int i = 0; i < M; i++)             if (!st[i].null()) N++;          return N;        }      void insert(Item x)        { st[x.key()] = x; }      Item search(Key v)        { return st[v]; }      void remove(Item x)        { st[x.key()] = nullItem; }      Item select(int k)        { for (int i = 0; i < M; i++)            if (!st[i].null())               if (k-- == 0) return st[i];          return nullItem;        }      void show(ostream& os)        { for (int i = 0; i < M; i++)            if (!st[i].null()) st[i].show(os); }  };-----template <class Item, class Key>class ST   {    private:      Item nullItem, *st;       int N;    public:      ST(int maxN)        { st = new Item[maxN+1]; N = 0; }      int count()        { return N; }      void insert(Item x)        { int i = N++; Key v = x.key();          while (i > 0 && v < st[i-1].key())            {  st[i] = st[i-1]; i--; }          st[i] = x;        }      Item search(Key v)        {          for (int i = 0; i < N; i++)            if (!(st[i].key() < v)) break;          if (v == st[i].key()) return st[i];          return nullItem;        }      Item select(int k)        { return st[k]; }      void show(ostream& os)        { int i = 0;           while (i < N) st[i++].show(os); }  };-----#include <stdlib.h>template <class Item, class Key>class ST   {    private:      Item nullItem;      struct node         { Item item; node* next;           node(Item x, node* t)            { item = x; next = t; }         };       typedef node *link;      int N;      link head;      Item searchR(link t, Key v)        { if (t == 0) return nullItem;          if (t->item.key() == v) return t->item;          return searchR(t->next, v);        }    public:      ST(int maxN)        { head = 0; N = 0; }      int count()        { return N; }      Item search(Key v)        { return searchR(head, v); }      void insert(Item x)        { head = new node(x, head); N++; }    };-----    private:      Item searchR(int l, int r, Key v)        { if (l > r) return nullItem;          int m = (l+r)/2;          if (v == st[m].key()) return st[m];          if (l == r) return nullItem;          if (v < st[m].key())                return searchR(l, m-1, v);          else return searchR(m+1, r, v);        }    public:      Item search(Key v)        { return searchR(0, N-1, v); }-----template <class Item, class Key>class ST   {    private:      struct node         { Item item; node *l, *r;          node(Item x)            { item = x; l = 0; r = 0; }         };       typedef node *link;      link head;      Item nullItem;      Item searchR(link h, Key v)        { if (h == 0) return nullItem;          Key t = h->item.key();          if (v == t) return h->item;          if (v < t) return searchR(h->l, v);                else return searchR(h->r, v);        }      void insertR(link& h, Item x)        { if (h == 0) { h = new node(x); return; }          if (x.key() < h->item.key())                insertR(h->l, x);          else insertR(h->r, x);        }    public:      ST(int maxN)        { head = 0; }      Item search(Key v)         { return searchR(head, v); }       void insert(Item x)        { insertR(head, x); }  };-----   private:      void showR(link h, ostream& os)        {           if (h == 0) return;          showR(h->l, os);          h->item.show(os);           showR(h->r, os);        }    public:      void show(ostream& os)        { showR(head, os); } -----void insert(Item x)  { Key v = x.key();    if (head == 0)       { head = new node(x); return; }    link p = head;    for (link q = p; q != 0; p = q ? q : p)      q = (v < q->item.key()) ? q->l : q->r;     if (v < p->item.key()) p->l = new node(x);                       else p->r = new node(x);  }-----#include <iostream.h>#include <fstream.h>#include "Item.cxx"#include "ST.cxx"static char text[maxN];int main(int argc, char *argv[])  { int N = 0; char t;    ifstream corpus; corpus.open(*++argv);    while (N < maxN && corpus.get(t)) text[N++] = t;     text[N] = 0;    ST<Item, Key> st(maxN);    for (int i = 0; i < N; i++) st.insert(&text[i]);    char query[maxQ]; Item x, v(query);    while (cin.getline(query, maxQ))      if ((x = st.search(v.key())).null())           cout << "not found: " << query << endl;      else cout <<  x-text << ": " << query << endl;  }-----void rotR(link& h)  { link x = h->l; h->l = x->r; x->r = h; h = x; }void rotL(link& h)  { link x = h->r; h->r = x->l; x->l = h; h = x; }-----private:  void insertT(link& h, Item x)    { if (h == 0) { h = new node(x); return; }      if (x.key() <  h->item.key())            { insertT(h->l, x); rotR(h); }      else { insertT(h->r, x); rotL(h); }    }public:  void insert(Item item)    { insertT(head, item); }-----private:  Item selectR(link h, int k)    { if (h == 0) return nullItem;      int t = (h->l == 0) ? 0: h->l->N;      if (t > k) return selectR(h->l, k);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩亚洲欧美成人一区| 一区二区三区国产精华| 成人欧美一区二区三区白人| 午夜视频一区在线观看| 成人一区二区三区视频| 欧美大尺度电影在线| 亚洲一区二区中文在线| 高清在线成人网| 日韩三级伦理片妻子的秘密按摩| 日韩理论片在线| 岛国一区二区在线观看| 欧美大尺度电影在线| 亚洲夂夂婷婷色拍ww47| av一二三不卡影片| 久久综合色8888| 麻豆成人久久精品二区三区红| 91麻豆.com| 国产精品麻豆欧美日韩ww| 国产精品综合二区| 日韩亚洲欧美一区| 日本欧美一区二区三区乱码| 色拍拍在线精品视频8848| 国产精品久久久久天堂| 国产精品一区二区你懂的| 精品免费一区二区三区| 三级欧美韩日大片在线看| 欧美日韩视频专区在线播放| 综合久久综合久久| 99国产精品久久久久久久久久 | 欧美裸体一区二区三区| 亚洲精品成人精品456| 91污在线观看| 综合在线观看色| 色综合久久久久网| 亚洲综合男人的天堂| 91色porny| 亚洲精品亚洲人成人网| 在线国产电影不卡| 亚洲一二三区不卡| 欧美日韩不卡一区二区| 五月综合激情网| 日韩西西人体444www| 日韩黄色片在线观看| 91精品国产综合久久久蜜臀粉嫩| 亚洲va在线va天堂| 欧美一二三区在线| 狠狠色狠狠色综合| 国产精品视频一二三区| 91蜜桃在线免费视频| 洋洋成人永久网站入口| 91麻豆精品国产91久久久更新时间 | 色嗨嗨av一区二区三区| 亚洲国产精品久久久久婷婷884| 欧美在线观看视频一区二区| 天天色图综合网| 久久综合色8888| av色综合久久天堂av综合| 一区二区成人在线视频| 欧美福利视频一区| 国产精品亚洲一区二区三区妖精 | 91精品久久久久久蜜臀| 国产一区二区女| 亚洲色欲色欲www在线观看| 欧美日韩精品综合在线| 国产一区视频在线看| 亚洲美女淫视频| 日韩美女视频在线| 99久久久无码国产精品| 日本午夜精品视频在线观看| 国产精品全国免费观看高清 | 成人aaaa免费全部观看| 亚洲国产精品一区二区久久 | 欧美一a一片一级一片| 色综合久久综合网| 另类小说色综合网站| 欧美国产一区视频在线观看| 欧美男男青年gay1069videost| 国产一区二区三区观看| 亚洲一卡二卡三卡四卡无卡久久 | 久久99日本精品| 亚洲色图一区二区| 26uuu精品一区二区| 在线观看一区不卡| 成人午夜视频在线| 久久精品国产一区二区三| 亚洲黄色小说网站| 国产偷v国产偷v亚洲高清| 69成人精品免费视频| 91美女在线视频| 国产成人精品亚洲777人妖| 亚洲成人av一区| 亚洲免费色视频| 国产欧美日韩在线看| 日韩欧美一二三区| 欧美电影影音先锋| 日本韩国欧美国产| 99精品视频一区| 国产成人综合亚洲91猫咪| 青椒成人免费视频| 午夜一区二区三区视频| 亚洲男人天堂av网| 极品美女销魂一区二区三区| 综合色中文字幕| 综合欧美亚洲日本| 国产精品电影一区二区三区| 久久久91精品国产一区二区三区| 91精品国产丝袜白色高跟鞋| 欧美日韩综合一区| 欧美午夜不卡在线观看免费| 91麻豆.com| 在线看一区二区| 欧美综合视频在线观看| 色婷婷综合在线| 91蝌蚪国产九色| 91免费视频观看| 色综合久久精品| 色妹子一区二区| 色婷婷久久一区二区三区麻豆| 99精品欧美一区二区三区小说| 成人在线综合网| jvid福利写真一区二区三区| 成人h动漫精品一区二区| 国产剧情av麻豆香蕉精品| 国产美女视频91| 成人福利视频网站| 91免费视频网| 欧美久久久久久久久中文字幕| 欧美日本不卡视频| 日韩精品在线一区二区| 久久看人人爽人人| 亚洲欧洲成人av每日更新| 亚洲免费大片在线观看| 亚洲成av人影院| 久久激情综合网| 成人免费看片app下载| 91亚洲国产成人精品一区二三| 欧洲亚洲国产日韩| 欧美一区二区二区| 国产欧美精品区一区二区三区| 亚洲欧美怡红院| 亚洲成人午夜影院| 在线免费观看日本一区| 在线电影一区二区三区| 久久理论电影网| 亚洲欧美成人一区二区三区| 午夜精彩视频在线观看不卡| 狠狠狠色丁香婷婷综合久久五月| 成人精品鲁一区一区二区| 欧洲人成人精品| 久久综合色8888| 亚洲一区中文日韩| 国产精品18久久久久| 97精品久久久久中文字幕| 56国语精品自产拍在线观看| 久久蜜桃av一区二区天堂 | 图片区小说区区亚洲影院| 韩国三级中文字幕hd久久精品| yourporn久久国产精品| 制服丝袜中文字幕一区| 国产精品人人做人人爽人人添| 亚洲一区欧美一区| 成人午夜大片免费观看| 91超碰这里只有精品国产| 国产精品电影院| 精品无人码麻豆乱码1区2区| 在线观看精品一区| 日本一区二区三区在线观看| 亚洲成人精品在线观看| a美女胸又www黄视频久久| 欧美大片免费久久精品三p| 洋洋成人永久网站入口| 国产成人免费网站| 日韩精品一区二区三区视频播放| 亚洲女同女同女同女同女同69| 国产美女主播视频一区| 欧美日本精品一区二区三区| 成人欧美一区二区三区小说 | 亚洲午夜私人影院| 成人精品小蝌蚪| 亚洲午夜羞羞片| 91色九色蝌蚪| 18成人在线观看| 国产精品996| 欧美精品一区二区三区高清aⅴ| 亚洲国产日韩a在线播放性色| aa级大片欧美| 中文字幕不卡在线| 国产福利不卡视频| 精品国产亚洲在线| 麻豆精品一区二区av白丝在线| 欧美日韩在线直播| 亚洲国产视频一区二区| 91成人看片片| 亚洲精品中文在线| 色综合久久66| 亚洲欧美色图小说| 91视频在线观看| 中文字幕字幕中文在线中不卡视频| 国产精品乡下勾搭老头1| 久久久久99精品国产片|