锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产产在线精品亚洲AAVV,亚洲人成网站观看在线播放,伊人久久大香线蕉亚洲五月天 http://m.tkk7.com/zhengzhili/archive/2008/06/13/207531.htmlBrianBrianThu, 12 Jun 2008 16:54:00 GMThttp://m.tkk7.com/zhengzhili/archive/2008/06/13/207531.htmlhttp://m.tkk7.com/zhengzhili/comments/207531.htmlhttp://m.tkk7.com/zhengzhili/archive/2008/06/13/207531.html#Feedback3http://m.tkk7.com/zhengzhili/comments/commentRss/207531.htmlhttp://m.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://m.tkk7.com/zhengzhili/archive/2008/06/11/207253.htmlBrianBrianWed, 11 Jun 2008 15:56:00 GMThttp://m.tkk7.com/zhengzhili/archive/2008/06/11/207253.htmlhttp://m.tkk7.com/zhengzhili/comments/207253.htmlhttp://m.tkk7.com/zhengzhili/archive/2008/06/11/207253.html#Feedback4http://m.tkk7.com/zhengzhili/comments/commentRss/207253.htmlhttp://m.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 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 暖暖免费高清日本一区二区三区| 黄页免费在线观看| 亚洲免费福利在线视频| 亚洲国产人成在线观看69网站| 中文字幕不卡高清免费| 亚洲日韩精品一区二区三区无码 | 美女的胸又黄又www网站免费| 最新欧洲大片免费在线| 亚洲一区二区三区在线网站 | 午夜无码A级毛片免费视频| 久久精品国产亚洲| 午夜爽爽爽男女免费观看影院| 亚洲av无码成人黄网站在线观看| 三级网站免费观看| 亚洲综合无码一区二区| 麻豆成人久久精品二区三区免费 | 亚洲日韩精品无码AV海量| 在线观看免费毛片| 免费人成网站永久| 国产亚洲av人片在线观看| 久久免费观看国产精品88av| 亚洲日韩在线视频| 日韩人妻无码免费视频一区二区三区 | 成人久久久观看免费毛片| 免费无码成人AV片在线在线播放 | 拍拍拍无挡视频免费观看1000| 亚洲成a人片在线观看无码专区| 欧洲精品99毛片免费高清观看| wwwxxx亚洲| 亚洲中文字幕无码爆乳av中文 | 亚洲免费综合色在线视频| 久久亚洲精品无码gv| 日本红怡院亚洲红怡院最新| 免费v片在线观看视频网站| 婷婷亚洲综合一区二区| 国产成人无码综合亚洲日韩| 免费黄色小视频网站| 全黄大全大色全免费大片| 亚洲最大的成人网站| 日韩精品亚洲aⅴ在线影院| 国产成在线观看免费视频|