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

Jiang's C++ Space

創(chuàng)作,也是一種學(xué)習(xí)的過(guò)程。

   :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
最近做東西的時(shí)候出現(xiàn)這么一個(gè)問(wèn)題,看起來(lái)很簡(jiǎn)單的:
#define LARGE_SIZE 1024
#define ELEMENT_NUM 5
class CItem
{
public:
 TCHAR cID;
 BYTE data[LARGE_SIZE];
};

CItem data[ELEMENT_NUM];

INT reposition[ELEMENT_NUM] 
= {4,2,0,3,1};
要求,根據(jù)repositon的內(nèi)容調(diào)整data的內(nèi)容,如上,把原來(lái)下標(biāo)4的元素調(diào)到0,把原來(lái)下標(biāo)2的元素調(diào)到1。

寫個(gè)算法,復(fù)雜度為O(n),還要盡量節(jié)省空間,因?yàn)長(zhǎng)ARGE_SIZE可以很大,并且ELEMENT_NUM可能遠(yuǎn)遠(yuǎn)不止5個(gè)元素。

馬上能想到的方法就是:
    INT i;
    CItem 
*pToHandle = new CItem[ELEMENT_NUM];
    memcpy(pToHandle, data, 
sizeof(data));
    
for(i=0; i<ELEMENT_NUM; i++)
    {
        data[i] 
= pToHandle[reposition[i]];
    }
    delete[] pToHandle;
但這不太符合節(jié)省空間的原則,有可能在一個(gè)嵌入式平臺(tái)中,new操作就會(huì)失敗。

問(wèn)題看起來(lái)是簡(jiǎn)單,但卻耗費(fèi)了我不少時(shí)間,才寫出這么一個(gè)算法,我直接貼上全部代碼:
#include "stdafx.h"
#include 
<Windows.h>

#define LARGE_SIZE 1024

class CItem
{
public:
    TCHAR cID;
    BYTE data[LARGE_SIZE];
};

#define ELEMENT_NUM 10

int _tmain(int argc, _TCHAR* argv[])
{
    
//Data to test
    CItem allData[ELEMENT_NUM];
    INT i;
    
for (i=0; i<ELEMENT_NUM; i++)
    {
        allData[i].cID 
= 'A' + i;
    }

    INT position[ELEMENT_NUM] 
= {5143697208};
    
//The result be    F  B  E  D  G  J  H  C  A  I

    
for (i=0; i<ELEMENT_NUM; i++)
    {
        CItem swapItem;
        
if (position[i]==i)
            
continue;
        swapItem 
= allData[i];
        
        INT iSeek 
= i;
        
do 
        {
            INT iToSeekNext 
= position[iSeek];
            allData[iSeek] 
= allData[iToSeekNext];
            position[iSeek] 
= iSeek;
            iSeek 
= iToSeekNext;
        } 
while (position[iSeek]!=i);

        allData[iSeek] 
= swapItem;
        position[iSeek] 
= iSeek;
    }

    
for (i=0; i<ELEMENT_NUM; i++)
    {
        _tprintf(TEXT(
"%c "), allData[i].cID);
    }
    _tprintf(TEXT(
"\n"));

    
return 0;
}
看起來(lái)寫得稍微有些亂,而且明顯用了兩層迭代,按道理說(shuō)算法復(fù)雜度應(yīng)該為O(n2)了,但再仔細(xì)分析代碼后發(fā)覺(jué):需要調(diào)整位置的元素,只需要移動(dòng)一次,而整個(gè)遍歷過(guò)程并不會(huì)出現(xiàn)重復(fù)遍歷的情況。因此其實(shí)際復(fù)雜度應(yīng)該為O(n),已經(jīng)是最高效了,看看還有沒(méi)別的辦法。
posted on 2010-11-27 18:58 Jiang Guogang 閱讀(466) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Knowledge
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲手机成人高清视频| 狠狠久久亚洲欧美专区| 亚洲影音一区| 亚洲自拍高清| 欧美伊人久久久久久久久影院 | 韩曰欧美视频免费观看| 国产在线不卡| 亚洲国产一区二区在线| 日韩视频专区| 欧美一区二区三区免费视频| 欧美专区18| 亚洲二区视频| 黄色成人在线网址| 亚洲国产综合在线| 亚洲午夜精品久久| 久久久久国内| 亚洲精品小视频在线观看| 亚洲小少妇裸体bbw| 久久精品亚洲国产奇米99| 欧美精品www在线观看| 国产精品三级久久久久久电影| 国产丝袜一区二区三区| 亚洲国产精品久久久久秋霞不卡 | 香蕉av777xxx色综合一区| 久久久久久久一区二区三区| 亚洲高清自拍| 久久国产加勒比精品无码| 欧美精品久久99| 国内伊人久久久久久网站视频| 亚洲视频一二三| 欧美暴力喷水在线| 亚洲欧美日韩精品| 欧美日韩免费在线视频| 怡红院精品视频在线观看极品| 亚洲性xxxx| 亚洲欧洲美洲综合色网| 校园春色国产精品| 国产精品vip| 亚洲精品一区二区三区在线观看| 欧美在线二区| 亚洲视频一区在线| 欧美精品三级| 日韩天天综合| 亚洲大片av| 玖玖国产精品视频| 影音先锋一区| 久久久天天操| 久久成年人视频| 国产视频久久久久| 性欧美8khd高清极品| 一二三区精品| 国产精品啊啊啊| 亚洲午夜在线视频| 最新国产乱人伦偷精品免费网站 | 奶水喷射视频一区| 在线不卡a资源高清| 久久综合999| 久久久亚洲精品一区二区三区| 韩国一区二区三区美女美女秀| 久久黄色影院| 久久精品人人做人人综合| 国产在线视频欧美一区二区三区| 久久精品国产亚洲aⅴ| 欧美一级视频| 影音先锋成人资源站| 欧美激情 亚洲a∨综合| 91久久久久久国产精品| 老司机成人网| 亚洲欧洲日韩综合二区| 亚洲欧洲日本专区| 欧美日韩一区二区三区| 亚洲欧美国产va在线影院| 亚洲无亚洲人成网站77777| 国产免费成人在线视频| 久久天天综合| 欧美高清视频一区二区三区在线观看| 亚洲精品影视| 亚洲小说春色综合另类电影| 国产婷婷精品| 欧美国产日韩一区| 欧美日韩一区二区三区免费看| 午夜亚洲精品| 久久精品人人做人人爽电影蜜月| 亚洲美女精品成人在线视频| 洋洋av久久久久久久一区| 国产欧美日韩视频一区二区三区 | 99这里只有精品| 国产精品欧美久久久久无广告| 久久精品五月| 欧美精品一区二| 久久av免费一区| 免费久久久一本精品久久区| 中日韩高清电影网| 欧美亚洲专区| 日韩视频在线免费观看| 午夜精品国产| 日韩一区二区免费看| 性欧美8khd高清极品| 日韩视频专区| 久久精品国产第一区二区三区| 一本久道久久综合狠狠爱| 亚洲一区二区三区精品在线观看| 亚洲高清中文字幕| 亚洲女人小视频在线观看| 91久久精品www人人做人人爽 | 香蕉国产精品偷在线观看不卡| 亚洲国产激情| 欧美一区二区三区四区夜夜大片| 99一区二区| 另类尿喷潮videofree| 亚洲欧美日韩精品久久久久| 牛牛影视久久网| 久久久久久尹人网香蕉| 国产精品a久久久久| 亚洲国产精品一区制服丝袜| 国产日韩精品一区二区| 一区二区三区不卡视频在线观看 | 一区二区激情| 欧美成人精品激情在线观看 | 亚洲一区二区动漫| 欧美高清视频www夜色资源网| 葵司免费一区二区三区四区五区| 性欧美1819性猛交| 亚洲欧美日韩精品在线| 欧美区高清在线| 亚洲国产婷婷| 亚洲福利视频三区| 久久午夜色播影院免费高清| 久久国产免费看| 国产日本欧美一区二区三区| 亚洲午夜激情网站| 亚洲影视在线播放| 欧美性猛片xxxx免费看久爱| 日韩午夜一区| 亚洲一区尤物| 国产精品日韩欧美综合| 亚洲一区二区伦理| 欧美一区成人| 国产精品日韩精品欧美在线 | 亚洲看片网站| 亚洲夜间福利| 国产精品免费看片| 亚洲欧美在线一区| 久久综合999| 亚洲精品视频一区| 欧美日韩一级视频| 午夜在线电影亚洲一区| 老色鬼久久亚洲一区二区 | 欧美一区精品| 国产视频久久| 可以看av的网站久久看| 亚洲国产精品va| 亚洲午夜久久久久久尤物 | 亚洲国产精品第一区二区三区| 牛夜精品久久久久久久99黑人| 亚洲精品孕妇| 午夜免费久久久久| 国产综合欧美| 欧美刺激午夜性久久久久久久| 日韩亚洲欧美高清| 欧美一级片一区| 在线播放国产一区中文字幕剧情欧美 | 亚洲日本中文| 欧美一级片一区| 亚洲第一网站免费视频| 欧美精品自拍| 欧美一级在线亚洲天堂| 亚洲国产婷婷香蕉久久久久久| 亚洲欧美日韩精品一区二区| 亚洲第一网站| 国产欧美日韩一级| 欧美理论大片| 久久精品中文字幕一区二区三区| 99re6热只有精品免费观看 | 好看的亚洲午夜视频在线| 欧美精品videossex性护士| 亚洲欧美综合| 亚洲裸体视频| 欧美成人免费一级人片100| 亚洲欧美日韩在线一区| 亚洲经典三级| 国内精品国语自产拍在线观看| 欧美日韩在线亚洲一区蜜芽 | 亚洲国产高清一区| 亚洲欧美综合另类中字| 亚洲欧洲日韩在线| 国产一区日韩欧美| 国产精品a久久久久| 欧美激情1区| 久久久久九九视频| 亚洲欧美日韩精品久久久久| 亚洲精品黄色| 欧美激情亚洲| 欧美ab在线视频| 久久久五月婷婷| 久久精品一区二区国产| 性做久久久久久| 亚洲欧洲av一区二区| 亚洲天堂成人在线观看| 99精品视频免费观看视频|