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

            公告

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

            積分與排名

            • 積分 - 183710
            • 排名 - 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++
            久久精品国产亚洲av麻豆蜜芽| 久久久精品日本一区二区三区| 亚洲中文字幕无码久久综合网| 欧美丰满熟妇BBB久久久| 热99re久久国超精品首页| 久久婷婷色综合一区二区| 久久亚洲私人国产精品vA | 伊人久久国产免费观看视频 | 久久精品无码一区二区三区| 久久久精品国产Sm最大网站| 久久天天躁狠狠躁夜夜96流白浆| 成人午夜精品久久久久久久小说| 婷婷五月深深久久精品| 久久播电影网| 久久综合狠狠色综合伊人| 久久亚洲AV无码精品色午夜| 国产精品无码久久四虎| 久久人人爽爽爽人久久久| 久久精品人妻中文系列| 日韩AV毛片精品久久久| 久久婷婷国产麻豆91天堂| 久久综合狠狠综合久久综合88| 欧美伊人久久大香线蕉综合69| 久久青青草原综合伊人| 久久99精品久久久久久hb无码| 偷窥少妇久久久久久久久| 日韩精品无码久久一区二区三| 99久久国产综合精品网成人影院| 精品久久久久久国产潘金莲| 无码人妻久久一区二区三区| 伊人久久大香线蕉亚洲| 亚洲午夜久久久久妓女影院| 一本一道久久a久久精品综合| 久久久久一本毛久久久| 久久精品无码专区免费| 久久er国产精品免费观看8| 国内精品久久久久影院网站| 成人国内精品久久久久影院VR| 国产精自产拍久久久久久蜜| 久久天天躁狠狠躁夜夜2020| 久久综合成人网|