青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 183,  comments - 10,  trackbacks - 0

逆序數(shù)的計算

常規(guī)的做法
時間:O(N^2)

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 int foo(const vector<int>& array)
 6 {
 7     int ret = 0;
 8     for (vector<int>::size_type i = 0; i != array.size() - 1++i)
 9     {
10         for (vector<int>::size_type j = i + 1; j != array.size(); ++j)
11         {
12             if (array[i] > array[j])
13             {
14                 ++ret;
15             }
16         }
17     }
18     return ret;
19 }
20 
21 int main()
22 {
23     vector<int> array;
24     
25     for (int i = 10; i > 0--i)
26     {
27         array.push_back(i);
28     }
29     cout << foo(array) << endl;
30     return 0;
31 }

 


改進(jìn)的做法
利用分治法,借助歸并排序求解逆序數(shù)。
時間復(fù)雜度:O(NlogN)
在歸并排序的基礎(chǔ)做一個修改即可:
不是算右邊的相對左邊的逆序數(shù),這樣太過于繁雜
而是算左邊相當(dāng)于右邊的逆序數(shù),這樣可以就在這一個地方做統(tǒng)一處理
即當(dāng)檢測到左邊大于右邊的時候,則所有剩下的左邊的數(shù)都相對于當(dāng)前右邊的數(shù)大,所以逆序數(shù)都要加 1 。
count += (end1 - begin1 + 1);
 1 #include <iostream>
 2 #include <cstdlib>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 int count = 0;
 7 
 8 void merge(int array[], int low, int mid, int high)
 9 {
10         int i, k;
11         int *temp = (int *) malloc((high-low+1* sizeof(int)); //申請空間,使其大小為兩個已經(jīng)排序序列之和,該空間用來存放合并后的序列
12         int begin1 = low;
13         int end1 = mid;
14         int begin2 = mid + 1;
15         int end2 = high;
16  
17         for (k = 0; begin1 <= end1 && begin2 <= end2; ++k)  //比較兩個指針?biāo)赶虻脑兀x擇相對小的元素放入到合并空間,并移動指針到下一位置
18                 if(array[begin1]<=array[begin2])
19                 {
20                         temp[k] = array[begin1++];
21                         
22                 }
23                 else
24                 {   
25                         //++count;
26                         
27                         // 不是算右邊的相對左邊的逆序數(shù),這樣太過于繁雜
28                         // 而是算左邊相當(dāng)于右邊的逆序數(shù),這樣可以就在這一個地方做統(tǒng)一處理
29                         count += (end1 - begin1 + 1);
30                         temp[k] = array[begin2++];    
31                 }
32         if(begin1 <= end1) //若第一個序列有剩余,直接拷貝出來粘到合并序列尾
33         {
34                 memcpy(temp+k, array+begin1, (end1-begin1+1)*sizeof(int));
35                 //count += (end1 - begin1 + 1) * (high - mid);
36         }
37         if(begin2 <= end2) //若第二個序列有剩余,直接拷貝出來粘到合并序列尾
38                 memcpy(temp+k, array+begin2, (end2-begin2+1)*sizeof(int));
39         memcpy(array+low, temp, (high-low+1)*sizeof(int));//將排序好的序列拷貝回數(shù)組中
40         free(temp);
41 }
42 
43 int merge_sort(int array[], unsigned int first, unsigned int last)
44 {
45         int mid = 0;
46         if(first<last)
47         {
48                 mid = (first+last)/2;
49                 merge_sort(array, first, mid);
50                 merge_sort(array, mid+1,last);
51                 merge(array,first,mid,last);
52         }
53         return count;
54 }
55 
56 
57 int foo(int array[], int n)
58 {
59     return merge_sort(array, 0, n - 1);
60 }
61 
62 int main()
63 {
64     int array[] = {910876543210};
65     // int array[] = {1, 3, 2, 4, 3};
66     // int array[] = {1, 3, 2};
67     cout << foo(array, sizeof (array) / sizeof (*array)) << endl;
68     return 0;
69 }

http://www.cnblogs.com/dskit/archive/2009/12/16/1625942.html

http://hi.baidu.com/xiaohanhoho/blog/item/277a09392a0e4722b8998fdc.html

http://m.shnenglu.com/asp/articles/14261.html

http://www.cublog.cn/u2/62093/showart_484338.html

http://blog.csdn.net/guzhilei1986/archive/2008/04/10/2276782.aspx

 


posted on 2011-06-22 01:11 unixfy 閱讀(559) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美婷婷久久| 在线不卡中文字幕| 亚洲嫩草精品久久| 久久久噜噜噜久噜久久| 午夜影院日韩| 亚洲一区二区日本| 一本综合久久| 亚洲免费在线视频| 欧美一区二区视频免费观看| 欧美一区二区三区免费大片| 9久re热视频在线精品| 精品二区视频| 国内精品嫩模av私拍在线观看 | 亚洲一区二区黄色| 亚洲欧洲精品一区二区三区不卡| 亚洲第一网站| 亚洲综合欧美日韩| 久久久国产亚洲精品| 欧美高清视频一二三区| 亚洲经典在线看| 亚洲免费观看高清完整版在线观看| 欧美福利视频在线| 夜久久久久久| 免费成人在线视频网站| 国产精品第三页| 国产色综合天天综合网| 99国产精品久久久久久久| 亚洲欧美日韩国产另类专区| 麻豆久久久9性大片| 国产在线观看91精品一区| 一区二区三区欧美日韩| 欧美成人精品在线播放| 亚洲视频中文字幕| 久热精品视频| 伊人春色精品| 久久中文字幕导航| 久久国产毛片| 永久555www成人免费| 久久久久99精品国产片| 久久精品夜色噜噜亚洲aⅴ| 国产一区二三区| 毛片av中文字幕一区二区| 午夜一区不卡| 尤物yw午夜国产精品视频明星| 久久久中精品2020中文| 久久精品一区二区三区中文字幕 | 亚洲一区二区影院| 欧美日韩一区二区国产| 亚洲影视中文字幕| 亚洲私拍自拍| 伊人久久av导航| 亚洲日本欧美天堂| 欧美色中文字幕| 久久精品一区蜜桃臀影院| 久久人91精品久久久久久不卡| 91久久国产综合久久| 99成人精品| 一区二区三区在线视频播放| 亚洲二区在线视频| 国产日韩欧美综合精品| 国产日产欧产精品推荐色| 久久亚洲捆绑美女| 国产精品无人区| 久久久国产精品亚洲一区 | 亚洲精品视频二区| 国产日韩欧美91| 99香蕉国产精品偷在线观看| 在线播放一区| 久久蜜臀精品av| 久久免费视频这里只有精品| 国产精品日韩久久久久| 亚洲精品欧美日韩专区| 亚洲国产视频直播| 久久久久久噜噜噜久久久精品| 亚洲精品日韩激情在线电影| 欧美一区二区三区在线播放| 香蕉成人伊视频在线观看| 蜜桃伊人久久| 国产一区二区三区在线观看精品| 亚洲国产va精品久久久不卡综合| 久久美女艺术照精彩视频福利播放| 亚洲一区视频在线| 欧美日韩亚洲系列| 亚洲福利久久| 亚洲激情在线观看| 欧美日韩精品欧美日韩精品| 亚洲视频日本| 亚洲永久免费av| 国产毛片一区二区| 欧美在线观看www| 久久精品官网| 亚洲美女电影在线| 亚洲视频免费在线观看| 国产一区二区久久| 免费在线看一区| 欧美黑人国产人伦爽爽爽| 亚洲一级二级| 性色av一区二区三区在线观看 | 欧美三级黄美女| 性久久久久久久久久久久| 久久久国产91| 国产精品天美传媒入口| 久久九九热免费视频| 尤物九九久久国产精品的特点 | 亚洲美女精品成人在线视频| 国产精品成人久久久久| 久久精品一二三| 欧美日韩不卡| 美玉足脚交一区二区三区图片| 欧美四级伦理在线| 欧美黄色影院| 国产欧美大片| avtt综合网| 亚洲精品一区在线| 久久精品30| 欧美一区二区三区免费在线看| 欧美在线精品一区| 亚洲综合成人在线| 欧美成人午夜激情在线| 久久免费视频在线| 国产裸体写真av一区二区| 亚洲高清免费在线| 激情成人av| 欧美一二三区精品| 午夜精品久久久久久99热软件| 欧美大胆成人| 欧美成人自拍视频| 国内精品久久久久久久影视麻豆| 一区二区三区四区五区在线| 亚洲人成免费| 另类av一区二区| 另类人畜视频在线| 国产一区二区你懂的| 亚洲免费在线视频| 午夜精品一区二区三区在线播放| 欧美日韩极品在线观看一区| 亚洲国产精品va| 亚洲国产精品一区在线观看不卡 | 性欧美18~19sex高清播放| 一区二区精品国产| 欧美国产成人精品| 欧美黑人在线观看| 亚洲人久久久| 欧美成人在线免费观看| 欧美黑人国产人伦爽爽爽| 亚洲激情在线| 欧美成人综合在线| 亚洲人成在线免费观看| 亚洲精品视频免费在线观看| 欧美粗暴jizz性欧美20| 亚洲美女免费视频| 西瓜成人精品人成网站| 国产欧美日韩一级| 久久久午夜视频| 亚洲黄色一区| 亚洲综合欧美| 国内精品视频在线观看| 久久久久久久久蜜桃| 欧美高清在线一区| 一区二区三区四区五区精品| 国产精品麻豆成人av电影艾秋| 一区免费观看| 9l国产精品久久久久麻豆| 亚洲欧美日韩综合国产aⅴ| 国产伦精品一区二区三区视频孕妇| 午夜精品久久久久影视| 久久精品观看| 亚洲欧洲综合另类| 欧美日韩亚洲一区三区| 中文日韩在线| 久久久精品一品道一区| 亚洲国产高清一区| 欧美日韩不卡合集视频| 亚洲一区二区三区高清 | 国产区精品在线观看| 久久久久国产一区二区| 亚洲二区在线视频| 亚洲欧美国产另类| 在线观看成人一级片| 欧美日韩在线一区二区| 久久9热精品视频| 日韩午夜电影av| 乱人伦精品视频在线观看| 9l国产精品久久久久麻豆| 国产一区日韩一区| 欧美日韩一区二区三区四区五区| 亚洲一区久久| 男女精品网站| 欧美一区二区三区在线视频| 亚洲精品中文字幕有码专区| 国产日韩欧美一二三区| 欧美久久精品午夜青青大伊人| 亚洲欧美日韩精品久久奇米色影视| 欧美成人亚洲| 欧美一级欧美一级在线播放| 亚洲精品色婷婷福利天堂| 国产综合精品| 国产精品毛片在线| 欧美激情视频网站| 久久久精品一区二区三区|