• <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

            公告

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

            積分與排名

            • 積分 - 183737
            • 排名 - 141

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            // 一些排序函數模板


            #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 思勤無邪 閱讀(837) 評論(0)  編輯 收藏 引用 所屬分類: C++
            久久丫忘忧草产品| 久久久精品国产| 99久久99久久精品国产片果冻| 日韩精品国产自在久久现线拍| 国产一区二区精品久久凹凸| 色偷偷88欧美精品久久久| 久久天天躁狠狠躁夜夜avapp| 久久精品国产亚洲av麻豆小说| 国产成人久久精品二区三区| 亚洲人成网站999久久久综合| 99麻豆久久久国产精品免费| 久久人人爽人人爽AV片| 久久久久亚洲av无码专区| 狠狠精品干练久久久无码中文字幕 | 婷婷久久精品国产| 久久精品国产亚洲AV麻豆网站| 99久久精品国产毛片| 欧美丰满熟妇BBB久久久| 欧美伊人久久大香线蕉综合69| 久久国产免费观看精品3| 久久无码一区二区三区少妇| 97r久久精品国产99国产精| 国产免费久久精品99re丫y| 久久国产福利免费| 久久精品中文无码资源站| 久久伊人精品一区二区三区| 日韩久久久久中文字幕人妻| 99久久免费只有精品国产| 国产精品久久久久天天影视| 久久久久久夜精品精品免费啦| 久久久久波多野结衣高潮| 久久综合久久鬼色| 亚洲午夜精品久久久久久浪潮 | 久久无码人妻精品一区二区三区 | 一本色道久久HEZYO无码| 模特私拍国产精品久久| 亚洲精品无码专区久久同性男| 精品久久久久久国产三级 | 亚洲欧洲久久av| 婷婷久久精品国产| 漂亮人妻被中出中文字幕久久|