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

            woaidongmao

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            STL stable_sort 穩(wěn)定排序

            所謂穩(wěn)定排序,是指對(duì)一個(gè)序列進(jìn)行排序之后,如果兩個(gè)元素的值相等,則原來亂序時(shí)在前面的元素現(xiàn)在(排好序之后)仍然排在前面。STL中提供stable_sort()函數(shù)來讓我們進(jìn)行穩(wěn)定排序。為了更好的說明穩(wěn)定排序的效果,我們定義了一個(gè)結(jié)構(gòu)體元素,一個(gè)value成員和一個(gè)index成員,前者表示元素的值,后者表示亂序時(shí)的索引。

            stable_sort()內(nèi)部由歸并排序來實(shí)現(xiàn)。

            //Coded by 代碼瘋子

            //http://www.programlife.net/

            #include <iostream>

            #include <vector>

            #include <algorithm>

            #include <iterator>

            using namespace std;

             

            typedef struct TagNode

            {

                    int value;

                    int index;

            }Node;

             

            bool myCmp(const Node& a, const Node& b)

            {

                    return a.value < b.value;

            }

             

            int main(int argc, char **argv)

            {

                    vector<Node> coll;

                    Node tmp;

                    int idx = 0, num;

             

                    while(cin >> num && num)

                    {

                           ++idx;

                           tmp.value = num;

                           tmp.index = idx;

                           coll.push_back(tmp);

                    }

             

                    stable_sort(coll.begin(), coll.end(), myCmp);

             

                    cout << "Index\tValue:" << endl;

                    vector<Node>::iterator pos;

                    for(pos = coll.begin(); pos != coll.end(); ++pos)

                    {

                           cout << pos->index << "\t" << pos->value << endl;

                    }

             

                    return 0;

            }

            程序的運(yùn)行結(jié)果如下圖所示,可以看到,對(duì)于元素值相同的元素,索引小的在前面,穩(wěn)定排序就是這么一個(gè)效果。

            clip_image001

             

            posted on 2011-02-17 10:39 肥仔 閱讀(5348) 評(píng)論(1)  編輯 收藏 引用 所屬分類: Boost & STL

            評(píng)論

            # re: STL stable_sort 穩(wěn)定排序  回復(fù)  更多評(píng)論   

            哦哦,說得很好,^_^
            2011-07-23 00:49 | xingyezhi
            亚洲国产精品无码久久青草| 久久婷婷国产麻豆91天堂| 久久人妻少妇嫩草AV蜜桃| 久久综合成人网| 思思久久精品在热线热| 久久夜色精品国产网站| 91久久精品国产成人久久| 亚洲va久久久久| 97久久精品无码一区二区| 狠狠精品干练久久久无码中文字幕| 欧美亚洲另类久久综合婷婷 | 香蕉99久久国产综合精品宅男自 | 区久久AAA片69亚洲| 久久人爽人人爽人人片AV| 久久精品国产福利国产琪琪| 亚洲国产精品无码久久| 久久国产成人精品国产成人亚洲| 成人久久免费网站| 久久精品国产一区二区电影| 99久久久精品| 亚洲中文久久精品无码ww16| 久久久久无码国产精品不卡| 国产精品久久成人影院| 久久精品无码一区二区WWW| 久久精品亚洲乱码伦伦中文| 国产精品18久久久久久vr | 亚洲国产精品无码久久久不卡| 国产高清美女一级a毛片久久w| 久久久噜噜噜www成人网| 亚洲精品无码久久久| 久久免费国产精品| 国产69精品久久久久99尤物| 久久99中文字幕久久| 久久99国产精品尤物| 久久精品国产亚洲av麻豆色欲| 伊人久久精品无码av一区| 少妇人妻综合久久中文字幕| 日韩精品久久久久久久电影| 亚洲国产成人久久一区WWW| 久久人妻少妇嫩草AV蜜桃| 亚洲精品无码久久久|