• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            思勤無邪

            上學時,因我年齡最小,個頭也最小,上課時,就像大猩猩堆里的猴一般。如今,這猴偶爾也把最近的一些情況寫在這里。

               :: 首頁 :: 聯系 :: 聚合  :: 管理
              132 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

            公告

                 吾日常三省吾身,曰思、曰勤、曰無邪。

            積分與排名

            • 積分 - 184838
            • 排名 - 140

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            // 一些排序函數模板


            #include <iostream>
            using namespace System;

            // 排序算法 函數模板

            // 直接插入排序函數模板
            template <class T>
            void InsertionSort(T A[], int n)
            {  int i, j;
               T   temp;
               for (i = 1; i < n; i++)
               {  j = i;
                  temp = A[i];
                  while (j > 0 && temp < A[j-1])
                  {  A[j] = A[j-1];   
                     j--;
                  }
                 A[j] = temp;
               }
            }

            // 交換位置函數模板
            template <class T>
            void Swap (T &x, T &y)
            {
             T temp;
             temp = x;
             x = y;
             y = temp;
            }


            // 直接選擇排序函數模板
            template <class T>
            void SelectionSort(T A[], int n)
            {  int smallIndex;   
               int i, j;
               for (i = 0; i < n-1; i++)
               {  smallIndex = i;   
                  for (j = i+1; j < n; j++)
                     if (A[j] < A[smallIndex])
                        smallIndex = j;
                  Swap(A[i], A[smallIndex]);
               }
            }

            // 交換排序方法——起泡排序
            template <class T>
            void BubbleSort(T A[], int n)

             int i,j;            
             int lastExchangeIndex;
             i = n-1;     
             while (i > 0)
             { 
              lastExchangeIndex = 0; 
              for (j = 0; j < i; j++)
              {
               if (A[j+1] < A[j])
               {
                Swap(A[j],A[j+1]);
                lastExchangeIndex = j;    
               }
              }
              i = lastExchangeIndex;
             }
            }

            // 比較函數指針
            // 返回值
            //     負值: 第一個參數小于第二個參數
            //    0   : 相等
            //    正值: 第一個參數大于第二個參數
            typedef int (*CFT)(const void*, const void*);

            // **************************************
            // 對向量base的n個元素按照遞增順序排序
            // 用由cmp所指的函數做比較
            // 元素的大小是sz
            // Shell排序
            // **************************************
            void ssort(void* base, size_t n, size_t sz, CFT cmp)
            {
             for (int gap=n/2; 0<gap; gap/=2)
             {
              for (int i=gap; i<n; i++)
              {
               for (int j=i-gap; 0<=j; j-=gap)
               {
                char* b = static_cast<char*>(base);  // 必須強制
                char* pj = b+j*sz;      // &base[j]
                char* pjg = b+(j+gap)*sz;    // &base[j+gap]
                if (cmp(pjg, pj) < 0)
                {
                 // 交換base[j]與base[j+gap]
                 for (int k=0; k<sz; k++)
                 {
                  char temp = pj[k];
                  pj[k] = pjg[k];
                  pjg[k] = temp;
                 }
                }
               }
              }
             }
            }

            // 比較函數
            int compare_int(const void* arg1, const void* arg2)
            {
             if (*(int*)arg1 < *(int*)arg2) return -1;
             if (*(int*)arg1 == *(int*)arg2) return 0;
             if (*(int*)arg1 > *(int*)arg2) return 1;
            }

            void main()
            {
             const int MAXSIZE = 20;
             int* iA = new int[MAXSIZE];
             Random* random = new Random;
             for (int i=0; i<MAXSIZE; i++)
             {
              iA[i] = random->Next(100);
             }
             //InsertionSort(iA, 8);
             ssort(iA, MAXSIZE, sizeof(int), compare_int);
             for (int i=0; i<MAXSIZE; i++)
             {
              std::cout<< iA[i] << " ";
             }


             int x;
             std::cin>>x;

            }

            posted on 2006-05-31 17:26 思勤無邪 閱讀(839) 評論(0)  編輯 收藏 引用 所屬分類: C++
            亚洲а∨天堂久久精品9966| 麻豆AV一区二区三区久久| 精品久久8x国产免费观看| 色诱久久久久综合网ywww| 无码AV波多野结衣久久| 99国产精品久久久久久久成人热| 热久久这里只有精品| 久久精品国产一区二区三区| 久久综合九色综合网站| 嫩草影院久久99| 亚洲欧美一级久久精品| 国产国产成人精品久久| 亚洲精品无码久久不卡| 久久电影网一区| 国产69精品久久久久APP下载| 国产精品无码久久久久久| 性做久久久久久免费观看| 久久本道伊人久久| 久久久女人与动物群交毛片| 久久久久久国产a免费观看不卡| 久久久久久国产精品免费无码| 久久精品国产福利国产琪琪| 国产精品一久久香蕉国产线看观看| 欧美粉嫩小泬久久久久久久| 亚洲国产精品久久久久| 99久久免费国产精精品| 日韩AV毛片精品久久久| 国产精品嫩草影院久久| 97久久精品无码一区二区| 国产成人精品三上悠亚久久| 久久男人AV资源网站| 亚洲乱亚洲乱淫久久| 久久精品国产精品青草| 国产精品一区二区久久| 久久精品国产第一区二区三区| 国产精品久久久久久久app| 久久久久久久综合日本| 久久综合久久性久99毛片| 精品国产热久久久福利| 久久久久99精品成人片三人毛片| 亚洲乱亚洲乱淫久久|