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

posts - 183,  comments - 10,  trackbacks - 0

逆序數(shù)的計(jì)算

常規(guī)的做法
時(shí)間: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ù)。
時(shí)間復(fù)雜度:O(NlogN)
在歸并排序的基礎(chǔ)做一個(gè)修改即可:
不是算右邊的相對(duì)左邊的逆序數(shù),這樣太過于繁雜
而是算左邊相當(dāng)于右邊的逆序數(shù),這樣可以就在這一個(gè)地方做統(tǒng)一處理
即當(dāng)檢測(cè)到左邊大于右邊的時(shí)候,則所有剩下的左邊的數(shù)都相對(duì)于當(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)); //申請(qǐng)空間,使其大小為兩個(gè)已經(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)  //比較兩個(gè)指針?biāo)赶虻脑兀x擇相對(duì)小的元素放入到合并空間,并移動(dòng)指針到下一位置
18                 if(array[begin1]<=array[begin2])
19                 {
20                         temp[k] = array[begin1++];
21                         
22                 }
23                 else
24                 {   
25                         //++count;
26                         
27                         // 不是算右邊的相對(duì)左邊的逆序數(shù),這樣太過于繁雜
28                         // 而是算左邊相當(dāng)于右邊的逆序數(shù),這樣可以就在這一個(gè)地方做統(tǒng)一處理
29                         count += (end1 - begin1 + 1);
30                         temp[k] = array[begin2++];    
31                 }
32         if(begin1 <= end1) //若第一個(gè)序列有剩余,直接拷貝出來粘到合并序列尾
33         {
34                 memcpy(temp+k, array+begin1, (end1-begin1+1)*sizeof(int));
35                 //count += (end1 - begin1 + 1) * (high - mid);
36         }
37         if(begin2 <= end2) //若第二個(gè)序列有剩余,直接拷貝出來粘到合并序列尾
38                 memcpy(temp+k, array+begin2, (end2-begin2+1)*sizeof(int));
39         memcpy(array+low, temp, (high-low+1)*sizeof(int));//將排序好的序列拷貝回?cái)?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 閱讀(563) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(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>
            一本一道久久综合狠狠老精东影业| 一区二区三区国产在线观看| 亚洲国产一二三| 国产在线精品成人一区二区三区| 欧美午夜免费| 国产精品一区久久久| 国产一区二区三区久久久久久久久| 国产欧美在线观看| 国产一区高清视频| 在线视频观看日韩| 日韩一区二区免费高清| 亚洲午夜电影| 久久av资源网站| 蜜桃精品一区二区三区| 亚洲第一福利在线观看| 欧美激情第10页| 亚洲视频导航| 久久精视频免费在线久久完整在线看| 久久久噜噜噜久久人人看| 欧美激情2020午夜免费观看| 欧美风情在线| 国产精品有限公司| 91久久夜色精品国产九色| 午夜日韩激情| 久热精品视频在线| 亚洲色在线视频| 欧美凹凸一区二区三区视频| 国产精品综合不卡av| 亚洲激情综合| 久久av二区| 999在线观看精品免费不卡网站| 欧美一区高清| 国产精品激情电影| 亚洲精品久久视频| 久久久成人网| 99v久久综合狠狠综合久久| 久久精品一区中文字幕| 国产精品成人播放| 一本色道久久综合亚洲精品不卡| 久久偷看各类wc女厕嘘嘘偷窃| 一区二区三区四区五区精品| 欧美福利在线| 最新热久久免费视频| 久久美女性网| 先锋影院在线亚洲| 国产精品嫩草99a| 中文国产成人精品| 国产精品久久久久久亚洲调教 | 含羞草久久爱69一区| 99热精品在线| 亚洲动漫精品| 久久久另类综合| 国内在线观看一区二区三区| 亚洲欧美日韩电影| 一本一本a久久| 欧美日韩亚洲一区三区| 9l国产精品久久久久麻豆| 欧美激情第一页xxx| 久久久一区二区| 136国产福利精品导航网址| 久久婷婷一区| 狼人天天伊人久久| 亚洲三级网站| 亚洲精品中文字幕在线观看| 欧美激情精品久久久久久蜜臀 | 亚洲欧洲综合| 亚洲国产日韩欧美综合久久| 久久中文字幕一区二区三区| 亚洲高清成人| 亚洲人成免费| 国产精品视频在线观看| 欧美主播一区二区三区| 欧美在线观看网址综合| 亚洲第一福利在线观看| 亚洲黄色在线观看| 国产精品久久二区| 久久久久久亚洲精品杨幂换脸 | 玖玖综合伊人| 亚洲精品一区二区三区99| 亚洲欧洲一区二区在线观看| 欧美日韩国产麻豆| 欧美在线不卡视频| 久久久97精品| 99精品视频免费观看视频| 中文欧美在线视频| 国内外成人在线视频| 亚洲国产精品一区二区www| 欧美午夜欧美| 久久综合色婷婷| 欧美乱大交xxxxx| 久久国产日韩欧美| 欧美韩日一区二区三区| 亚洲午夜在线视频| 久久国产天堂福利天堂| 亚洲精品社区| 性久久久久久久久久久久| 亚洲国产日韩欧美综合久久| 一本色道精品久久一区二区三区| 国产资源精品在线观看| 最新国产成人av网站网址麻豆| 国产精品免费一区二区三区在线观看 | 亚洲天堂男人| 亚洲电影在线观看| 制服丝袜亚洲播放| 亚洲福利视频二区| 亚洲一区二区三区久久| 亚洲国产小视频| 久久成人一区二区| 亚洲一二三四久久| 欧美bbbxxxxx| 久久婷婷av| 国产精品久久九九| 亚洲精品自在久久| 亚洲精品久久久久久久久| 翔田千里一区二区| 亚洲欧美影院| 欧美日韩在线免费| 亚洲二区视频在线| 在线观看亚洲视频啊啊啊啊| 亚洲一区国产视频| 亚洲天堂网在线观看| 欧美激情一二三区| 亚洲国产91色在线| 欲色影视综合吧| 欧美一区二区三区四区高清| 亚洲男人的天堂在线aⅴ视频| 久久亚洲电影| 狼狼综合久久久久综合网| 国产精品视频九色porn| 亚洲精品国产精品乱码不99| 激情六月婷婷久久| 久久精品首页| 久久夜色精品国产| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲精品久久嫩草网站秘色| 一区二区在线观看视频| 欧美一区深夜视频| 久久福利电影| 国产伦精品免费视频| 亚洲综合色在线| 欧美亚洲视频一区二区| 欧美性生交xxxxx久久久| 99视频在线精品国自产拍免费观看 | 亚洲精品综合| 一区二区三区欧美日韩| 欧美日韩和欧美的一区二区| 欧美成ee人免费视频| 亚洲国产欧美日韩| 欧美激情一区二区三区成人| 亚洲精品黄色| 亚洲专区在线| 国产欧美一区二区三区视频| 欧美一级艳片视频免费观看| 玖玖综合伊人| 亚洲精品四区| 欧美日韩国产区| 亚洲影视中文字幕| 久久噜噜亚洲综合| 亚洲美女在线观看| 一区二区三区在线视频免费观看 | 亚洲日本va午夜在线影院| 欧美1区视频| 亚洲毛片在线观看| 欧美一进一出视频| 在线观看一区二区视频| 欧美激情自拍| 亚洲一区欧美一区| 欧美粗暴jizz性欧美20| 一区二区日韩精品| 国产精品日韩高清| 噜噜噜91成人网| 中日韩高清电影网| 久久久久九九九| 亚洲精品视频啊美女在线直播| 国产精品久久久一区麻豆最新章节| 欧美在线1区| 亚洲国产成人久久综合| 亚洲女性裸体视频| 在线观看欧美日本| 欧美日韩小视频| 午夜精品视频网站| 91久久中文字幕| 美国十次了思思久久精品导航| 一级成人国产| 国模私拍一区二区三区| 欧美顶级少妇做爰| 欧美一区日韩一区| 一区二区三区免费观看| 欧美成人精品h版在线观看| 亚洲欧美日韩中文视频| 亚洲黄网站在线观看| 国产综合久久久久久| 欧美精品videossex性护士| 先锋影音久久| 亚洲视频在线观看免费| 91久久精品一区二区别| 老牛国产精品一区的观看方式| 亚洲你懂的在线视频| 亚洲免费激情| 亚洲国产黄色片|