锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产产在线精品亚洲AAVV,亚洲人成网站观看在线播放,伊人久久大香线蕉亚洲五月天 http://www.tkk7.com/zhengzhili/archive/2008/06/13/207531.htmlBrianBrianThu, 12 Jun 2008 16:54:00 GMThttp://www.tkk7.com/zhengzhili/archive/2008/06/13/207531.htmlhttp://www.tkk7.com/zhengzhili/comments/207531.htmlhttp://www.tkk7.com/zhengzhili/archive/2008/06/13/207531.html#Feedback3http://www.tkk7.com/zhengzhili/comments/commentRss/207531.htmlhttp://www.tkk7.com/zhengzhili/services/trackbacks/207531.html         鈶犳妸 n 涓褰曠湅鎴?n 涓暱搴︿負(fù) l 鐨勬湁搴忓瓙琛紱
        鈶¤繘琛屼袱涓ゅ綊騫朵嬌璁板綍鍏抽敭瀛楁湁搴忥紝寰楀埌 n/2 涓暱搴︿負(fù) 2 鐨勬湁搴忓瓙琛紱 
        鈶㈤噸澶嶇鈶℃鐩村埌鎵鏈夎褰曞綊騫舵垚涓涓暱搴︿負(fù) n 鐨勬湁搴忚〃涓烘銆?br /> 浜?褰掑茍鎺掑簭綆楁硶瀹炰緥
        瀵逛簬褰掑茍鎺掑簭綆楁硶榪欑被鐨勫垎娌葷畻娉曪紝鍏舵牳蹇冨氨鏄?鍒嗚В"鍜?閫掑綊姹傝В"銆傚浜?鍒嗚В"瀹炰緥錛屼細(xì)鍦ㄤ笅闈㈠垎鏋恗sort()鏂規(guī)硶涓粰鍑恒傛垜浠厛鐪嬪悎騫剁殑榪囩▼銆?br />         浠ヤ笅闈㈡弿榪扮殑搴忓垪涓轟緥錛屽湪绱㈠紩鑼冨洿鍐匸first , last)鐨勫簭鍒楄繕鏈変節(jié)涓暣鏁板厓绱狅紝瀹冪敱绱㈠紩鑼冨洿涓篬first , mid]鐨勫洓涓厓绱犳湁搴忓瓙鍒楄〃A鍜岀儲寮曡寖鍥碵mid , last]鐨勪簲涓厓绱犳湁搴忓瓙鍒楄〃B緇勬垚銆?br />

        姝ラ1錛氭瘮杈僡rr[indexA]=7涓巃rr[indexB]=12銆傚皢杈冨皬鐨勫厓绱?澶嶅埗鍒版暟緇則empArr鐨勭儲寮昳ndexC澶勩傚茍灝唅ndexA鍜宨ndexC閮芥寚鍚戜笅涓涓綅緗?br />

        姝ラ2錛氭瘮杈僡rr[indexA]=10涓巃rr[indexB]=12銆傚皢杈冨皬鐨勫厓绱?0澶嶅埗鍒版暟緇則empArr鐨勭儲寮昳ndexC澶勩傚茍灝唅ndexA鍜宨ndexC閮芥寚鍚戜笅涓涓綅緗?br />
        姝ラ3錛氭瘮杈僡rr[indexA]=19涓巃rr[indexB]=12銆傚皢杈冨皬鐨勫厓绱?2澶嶅埗鍒版暟緇則empArr鐨勭儲寮昳ndexC澶勩傚茍灝唅ndexB鍜宨ndexC閮芥寚鍚戜笅涓涓綅緗?br />

        姝ラ4-7錛氫緷嬈℃垚瀵規(guī)瘮杈冧袱瀛愯〃鐨勫厓绱犲皢17錛?9錛?1錛?5澶嶅埗鍒版暟緇則empArr銆傛鏃訛紝indexA鍒拌揪瀛愯〃A鐨勬湭灝?indexA = mid)錛宨ndexB寮曠敤鐨勫間負(fù)30銆?br />
        姝ラ8-9錛氬皢鏈埌灝鵑儴鐨勫瓙琛ㄥ墿浣欐暟鎹鍒跺埌tempArr涓?br />
        姝ラ10錛氬皢tempArr澶嶅埗鍒板師濮嬫暟鎹產(chǎn)rr涓?br />
涓?褰掑茍鎺掑簭綆楁硶鐨勫疄鐜?br />     浜嗚В浜嗗悎騫惰繃紼嬶紝閭d箞鐞嗚В涓嬮潰鐨勪唬鐮佸茍涓嶆槸涓浠墮毦浜嬨備笅闈㈡彁渚涗簡褰掑茍綆楁硶鐨勯潪娉涘瀷鐗堟湰鍜屾硾鍨嬬増鏈?br />
public class MergeSort {
    
    
public static void sort(Object[] arr) {
        
//create a temporary array to store partitioned elements
        Object[] tempArr = arr.clone();

        
//call msort with arrays arr and tempArr along
        
//with the index range
        msort(arr, tempArr, 0, arr.length);
    }


    
public static <extends Comparable<? super T>> void sort(T[] arr) {
        
//create a temporary aray to store partitioned elements
        T[] tempArr = (T[]) arr.clone();

        
//call msort with arrays arr and tempArr along
        
//with the index range
        msort(arr, tempArr, 0, arr.length);
    }


    
private static void msort(Object[] arr, Object[] tempArr, int first,
                              
int last) {
        
//if the sublist has more than 1 element continue
        if (first + 1 < last) {
            
//for sublists of size 2 or more, call msort()
            
//for the left and right sublists and than
            
//merge the sorted sublists using merge()
            int midpt = (last + first) / 2;

            msort(arr, tempArr, first, midpt);
            msort(arr, tempArr, midpt, last);

            
//if list is already sorted, just copy src to
            
//dest; this is an optimization that results in faster
            
//sorts for nearly ordered lists
            if (((Comparable) arr[midpt - 1]).compareTo(arr[midpt]) <= 0)
                
return;
            
//the elements in the ranges [first,mid] and
            
//[mid,last] are ordered;merge the ordered sublists
            
//into an ordered sequence in the range [first , last]
            
//using the temporary array
            int indexA, indexB, indexC;

            
//set indexA to scan sublist A with rang [first , mid]
            
//and indexB to scan sublist B with rang [mid , last]
            indexA = first;
            indexB 
= midpt;
            indexC 
= first;

            
//while both sublists are not exhausted, compare
            
//arr[indexA] and arr[indexB]; copy the smaller
            
//to tempArr
            while (indexA < midpt && indexB < last) {
                
if (((Comparable) arr[indexA]).compareTo(arr[indexB]) < 0{
                    tempArr[indexC] 
= arr[indexA]; //copyto tempArr
                    indexA++//increment indexA
                }
 else {
                    tempArr[indexC] 
= arr[indexB]; //copyto tempArr
                    indexB++//increment indexB
                }

                indexC
++//increment indexC
            }

            
//copy the tail of the sublist that is not exhausted
            while (indexA < midpt) {
                tempArr[indexC
++= arr[indexA++]; //copy to tempArr
            }
 while (indexB < last) {
                tempArr[indexC
++= arr[indexB++]; //copy to tempArr
            }

            
//copy elements form temporary array to original array
            for (int i = first; i < last; i++)
                arr[i] 
= tempArr[i];
        }

    }

}
        
        涓婅堪浠g爜涓渶鏍稿績鐨刴sort()鏂規(guī)硶鏄竴閫掑綊綆楁硶銆備笅鍥捐鏄庝簡msort()鏂規(guī)硶涓瓙鍒楄〃鐨勫垎鍓蹭笌鍚堝茍銆?nbsp;   

鍥?褰掑茍鎺掑簭綆楁硶鐨勬晥鐜?br />         褰掑茍鎺掑簭鐨勬渶鍧忔儏鍐典笌騫沖潎鎯呭喌榪愯鏃墮棿閮戒負(fù)O(nlog2n)銆傚亣瀹氭暟緇勫叿鏈塶=2k涓厓绱犮傚涓嬪浘錛?br />          
        鍦ㄥ眰鏁?涓婂msort()鏂規(guī)硶鐨勭涓涓皟鐢ㄤ細(xì)浜х敓涓や釜閫掑綊璋冪敤錛岃繖涓や釜閫掑綊璋冪敤浜х敓闀垮害涓簄/2鐨勪袱涓崐閮ㄥ垎鍒楄〃錛岃宮erge()鏂規(guī)硶灝嗕笂榪頒袱涓崐閮ㄥ垎鍒楄〃緇勫悎鐨勪竴涓湁搴忕殑n鍏冪礌鍒楄〃錛涘湪灞傛暟1涓婂瓨鍦ㄤ袱涓猰sort()鏂規(guī)硶鐨勮皟鐢紝姣忎釜璋冪敤鍙堜細(xì)浜х敓鍙﹀涓や釜瀵歸暱搴︿負(fù)n/4鐨勫垪琛ㄧ殑閫掑綊璋冪敤銆傛瘡涓悎騫朵細(xì)灝嗕袱涓暱搴︿負(fù)n/4鐨勫瓙鍒楄〃榪炴帴涓轟竴涓暱搴︿負(fù)n/2鐨勬湁搴忓垪琛紱鍦ㄥ眰鏁?涓婂瓨鍦ㄥmerge()鏂規(guī)硶鐨?=22涓皟鐢紝姣忎釜璋冪敤浼?xì)鍒涘晦Z竴涓暱搴︿負(fù)n/4鐨勬湁搴忓垪琛ㄣ傞氬父錛屽湪灞傛暟i涓婂瓨鍦ㄥmerge()鏂規(guī)硶鐨?i涓皟鐢紝姣忎釜璋冪敤浼?xì)鍒涘晦Z竴涓暱搴︿負(fù)n/2i鐨勬湁搴忓瓙鍒楄〃銆?br />         灞傛暟0錛氬瓨鍦ㄥmerge()鏂規(guī)硶鐨?=20嬈¤皟鐢ㄣ傝繖涓皟鐢ㄥn涓厓绱犳帓搴忋?br />         灞傛暟1錛氬瓨鍦ㄥmerge()鏂規(guī)硶鐨?=21嬈¤皟鐢ㄣ傝繖涓皟鐢ㄥn/2涓厓绱犳帓搴忋?br />         灞傛暟2錛氬瓨鍦ㄥmerge()鏂規(guī)硶鐨?=22嬈¤皟鐢ㄣ傝繖涓皟鐢ㄥn/4涓厓绱犳帓搴忋?br />         ......
        灞傛暟i錛氬瓨鍦ㄥmerge()鏂規(guī)硶鐨?i嬈¤皟鐢ㄣ傝繖涓皟鐢ㄥn/i涓厓绱犳帓搴忋?br />         鍦ㄦ爲(wèi)涓殑姣忎竴灞傦紝鍚堝茍娑夊強(qiáng)鍏鋒湁綰挎ц繍琛屾椂闂寸殑n/2i涓厓绱狅紝榪欎釜綰挎ц繍琛屾椂闂撮渶瑕佸皯浜巒/2i嬈$殑姣旇緝銆傚湪灞傛暟i涓婄粍鍚堢殑2i涓悎騫舵搷浣滈渶瑕佸皯浜?i*n/2i=n嬈$殑姣旇緝銆傚亣瀹歯=2k,鍒嗗壊榪囩▼浼?xì)鍦╪/2k=1鐨刱灞傛暟涓婄粓姝€傞偅涔堟墍鏈夊眰涓婂畬鎴愮殑宸ヤ綔鎬婚噺涓?k*n = nlog2n銆傚洜姝sort()鏂規(guī)硶鐨勬渶鍧忔儏鍐墊晥鐜囦負(fù)O(nlog2n)銆?

Brian 2008-06-13 00:54 鍙戣〃璇勮
]]>
鎻掑叆鎺掑簭鎬濊礬涓庢硾鍨嬬増鏈殑瀹炵幇http://www.tkk7.com/zhengzhili/archive/2008/06/11/207253.htmlBrianBrianWed, 11 Jun 2008 15:56:00 GMThttp://www.tkk7.com/zhengzhili/archive/2008/06/11/207253.htmlhttp://www.tkk7.com/zhengzhili/comments/207253.htmlhttp://www.tkk7.com/zhengzhili/archive/2008/06/11/207253.html#Feedback4http://www.tkk7.com/zhengzhili/comments/commentRss/207253.htmlhttp://www.tkk7.com/zhengzhili/services/trackbacks/207253.html涓.鎻掑叆鎺掑簭綆楁硶鐨勬濊礬
        鍋囧畾榪欎釜鏁扮粍鐨勫簭鏄帓濂界殑錛岀劧鍚庝粠澶村線鍚庯紝濡傛灉鏈夋暟姣斿綋鍓嶅灞傚厓绱犵殑鍊煎ぇ錛屽垯灝嗚繖涓暟鐨勪綅緗線鍚庢尓錛岀洿鍒板綋鍓嶅灞傚厓绱犵殑鍊煎ぇ浜庢垨鑰呯瓑浜庡畠鍓嶉潰鐨勪綅緗負(fù)姝€?br /> 浜?鎻掑叆鎺掑簭綆楁硶瀹炰緥
        鐢ㄤ簲涓悕瀛?Monroe,Chin,Flores,Stein鍜孌are)鐨勫垪琛ㄧ殑鎻掑叆鎺掑簭綆楁硶涓轟緥錛?br />                                        Monroe    浠嶮onroe寮濮?br />
        澶勭悊鍚嶅瓧Chin        Chine  Monroe    灝咰hin鎻掑叆鍒頒綅緗?錛汳onroe縐誨姩鑷充綅緗?

        澶勭悊鍚嶅瓧Flores     Chine  Flores  Monroe    灝咶lores鎻掑叆鍒頒綅緗?錛汳onroe縐誨姩鑷充綅緗?

        澶勭悊鍚嶅瓧Stein       Chine  Flores  Monroe  Stein    Stein浣嶇疆姝g‘ 

        澶勭悊鍚嶅瓧Dare       Chine  Dare  Flores  Monroe  Stein    灝咲are鎻掑叆鍦ㄤ綅緗?錛涘垪琛ㄥ熬閮ㄥ悜鍙崇Щ鍔?nbsp;

涓?鎻掑叆鎺掑簭綆楁硶鐨勫疄鐜?br />
public class InsertSort {
    
//sort an array of elements using insertion sort

    public static <extends Comparable<? super T>> void sort(T[] arr) {
        
int i, j, n =
 arr.length;
        T target;

        
/**
         * place element at index i into the sublist
         * from index 0 to i-1 where 1<= i,
         * so it is in the correct positon
         
*/

        
for (i = 1; i < n; i++{
            
//
index j scans down list from index i looking for
            
//
correct position to locate target; assigns it to
            
//arr at index j

            j = i;
            target 
=
 arr[i];
            
//
locate insertion point by scanning downward as long
            
//
as target < arr[j] and we have not encountered the
            
//beginning of the array

            while (j > 0 && target.compareTo(arr[j - 1]) < 0{
                
//shift elements up list to make room for insertion

                arr[j] = arr[j - 1];
                j
--
;
            }

            
//the location is found;insert target
            arr[j] = target;
        }

    }

}

鍥?鎻掑叆鎺掑簭綆楁硶鐨勬晥鐜?br />         鍋囧畾n鏄暟緇勭殑闀垮害錛岄偅涔堟彃鍏ユ帓搴忛渶瑕乶-1閬嶃傚浜庨氱敤鐨勯亶i鏉ヨ錛屾彃鍏ユ搷浣滀粠arr[0]鍒癮rr[i-1]鐨勫瓙鍒楄〃涓紝騫朵笖闇瑕佸鉤鍧噄/2嬈℃瘮杈冦傛瘮杈冪殑騫沖潎鎬繪暟涓猴細(xì)
                 T(n) = 1/2 + 2/2 + 3/2 + ...... + (n-2)/2 + (n-1)/2 = n(n-1)/4
        鏍規(guī)嵁T(n)鐨勪富欏癸紝鎻掑叆鎺掑簭綆楁硶鐨勫鉤鍧囪繍琛屾椂闂翠負(fù)O(n2)銆傛渶濂芥儏鍐典負(fù)O(n)錛屾渶鍧忔儏鍐典負(fù)O(n2)銆?

Brian 2008-06-11 23:56 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲乱码日产精品a级毛片久久| 一级特黄特色的免费大片视频| 亚洲精品国产成人片| 24小时免费直播在线观看| 久久精品中文字幕免费| 黄色免费在线网址| 亚洲 暴爽 AV人人爽日日碰| 久久精品国产亚洲| 久久影视综合亚洲| 亚洲福利在线播放| 日本一区二区三区日本免费| 中文字幕无码成人免费视频| 久久精品无码专区免费东京热| 久久99精品免费一区二区| 在线观看免费亚洲| 亚洲AV无码一区二区三区电影 | 亚洲成年网站在线观看| 亚洲人成影院在线| 亚洲国产精品无码久久久秋霞2| 亚洲天堂中文字幕在线| 四虎永久免费影院在线| 日韩免费视频网站| 好男人视频在线观看免费看片| 永久在线免费观看| 在线观看免费中文视频| 蜜桃成人无码区免费视频网站| 国产在线一区二区综合免费视频| 国产免费人成视频在线播放播| 一个人看www免费高清字幕| 免费看一级高潮毛片| yellow免费网站| 久久国产精品免费一区| 中出五十路免费视频| 中文字幕无码日韩专区免费| 大地资源在线资源免费观看 | 亚洲av伊人久久综合密臀性色| 国产亚洲色婷婷久久99精品| 亚洲国产AV无码专区亚洲AV| 亚洲人成依人成综合网| 亚洲六月丁香六月婷婷蜜芽| 99亚偷拍自图区亚洲|