锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲AV无码国产剧情,国产成A人亚洲精V品无码,亚洲美女又黄又爽在线观看http://m.tkk7.com/stevenjohn/category/53877.html閭d簺闈掓槬鐨勫瞾鏈?/description>zh-cnFri, 27 Mar 2015 19:03:45 GMTFri, 27 Mar 2015 19:03:45 GMT60浜屽垎鏌ユ壘鏃墮棿澶嶆潅搴︾殑璁$畻(杞? http://m.tkk7.com/stevenjohn/archive/2015/03/26/423859.htmlabinabinThu, 26 Mar 2015 08:30:00 GMThttp://m.tkk7.com/stevenjohn/archive/2015/03/26/423859.htmlhttp://m.tkk7.com/stevenjohn/comments/423859.htmlhttp://m.tkk7.com/stevenjohn/archive/2015/03/26/423859.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/423859.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/423859.html浜屽垎鏌ユ壘鐨勫熀鏈濇兂鏄皢n涓厓绱犲垎鎴愬ぇ鑷寸浉絳夌殑涓ら儴鍒嗭紝鍘籥[n/2]涓巟鍋氭瘮杈冿紝濡傛灉x=a[n/2],鍒欐壘鍒皒,綆楁硶涓錛涘鏋渪<a[n/2],鍒欏彧瑕佸湪鏁扮粍a鐨勫乏鍗婇儴鍒嗙戶緇悳绱,濡傛灉x>a[n/2],鍒欏彧瑕佸湪鏁扮粍a鐨勫彸鍗婇儴鎼滅儲x.

鏃墮棿澶嶆潅搴︽棤闈炲氨鏄痺hile寰幆鐨勬鏁幫紒

鎬誨叡鏈塶涓厓绱狅紝

娓愭笎璺熶笅鍘誨氨鏄痭,n/2,n/4,....n/2^k錛屽叾涓璳灝辨槸寰幆鐨勬鏁?/span>

鐢變簬浣爊/2^k鍙栨暣鍚?gt;=1

鍗充護n/2^k=1

鍙緱k=log2n,錛堟槸浠?涓哄簳錛宯鐨勫鏁幫級

鎵浠ユ椂闂村鏉傚害鍙互琛ㄧずO()=O(logn)



abin 2015-03-26 16:30 鍙戣〃璇勮
]]>
涓や釜闀垮害鐩哥瓑鐨勬湁搴忔暟緇勬眰涓綅鏁?/title><link>http://m.tkk7.com/stevenjohn/archive/2014/11/17/420207.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Mon, 17 Nov 2014 13:47:00 GMT</pubDate><guid>http://m.tkk7.com/stevenjohn/archive/2014/11/17/420207.html</guid><wfw:comment>http://m.tkk7.com/stevenjohn/comments/420207.html</wfw:comment><comments>http://m.tkk7.com/stevenjohn/archive/2014/11/17/420207.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/stevenjohn/comments/commentRss/420207.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/stevenjohn/services/trackbacks/420207.html</trackback:ping><description><![CDATA[<div>璁緓[1…n],y[1…n]涓轟袱涓暟緇勶紝姣忎釜鍖呭惈n涓凡鐭ョ殑鎺掑ソ搴忕殑鏁幫紝緇欏嚭涓涓暟緇剎鍜寉涓墍鏈?n涓厓绱犵殑涓綅鏁幫紝瑕佹眰鏃墮棿澶嶆潅搴︿負O(lgN)<br /><br />榪欐槸綆楁硶瀵艱涓婇潰鐨勪竴閬撻鐩細<br /><br /><div>public class FindMedianTwoSortedArray {</div><div></div><div><span style="white-space:pre"> </span>public static int median(int[] arr1, int l1, int h1, int[] arr2, int l2, int h2)</div><div>    {</div><div><span style="white-space:pre"> </span>System.out.println("-----------");</div><div>        int mid1 = (h1 + l1 ) / 2;</div><div>        int mid2 = (h2 + l2 ) / 2;</div><div></div><div>        if (h1 - l1 == 1)</div><div>            return (Math.max(arr1[l1] , arr2[l2]) + Math.min(arr1[h1] , arr2[h2]))/2;</div><div>        else if (arr1[mid1] > arr2[mid2])</div><div>            return median(arr1, l1, mid1 , arr2, mid2 , h2);    </div><div>        else</div><div>            return median(arr1, mid1 , h1, arr2, l2 , mid2 );    </div><div>    }     </div><div><span style="white-space:pre"> </span>public static void main(String[] args) {</div><div><span style="white-space:pre"> </span>int[] a = new int[]{0,1,2};</div><div><span style="white-space:pre"> </span>int[] b = new int[]{1,2,3};</div><div><span style="white-space:pre"> </span>int result = median(a, 0, a.length-1,b,0,b.length-1);</div><div><span style="white-space:pre"> </span>System.out.println(result);</div><div><span style="white-space:pre"> </span>}</div><div>}</div><br /><br /></div><img src ="http://m.tkk7.com/stevenjohn/aggbug/420207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/stevenjohn/" target="_blank">abin</a> 2014-11-17 21:47 <a href="http://m.tkk7.com/stevenjohn/archive/2014/11/17/420207.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鎻掑叆鎺掑簭(java)http://m.tkk7.com/stevenjohn/archive/2014/10/19/418868.htmlabinabinSat, 18 Oct 2014 17:20:00 GMThttp://m.tkk7.com/stevenjohn/archive/2014/10/19/418868.htmlhttp://m.tkk7.com/stevenjohn/comments/418868.htmlhttp://m.tkk7.com/stevenjohn/archive/2014/10/19/418868.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/418868.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/418868.htmlpackage com.abin.lee.algorithm.insert;
import java.util.Arrays;
public class InsertSort {
public static void main(String[] args) {
int[] input = {6,1,4,2,5,8,3,7,9,0};
input = InsertSort.sort(input);
System.out.println(Arrays.toString(input));
}
public static int[] sort(int[] input){
int temp = 0;
for(int i=0;i<input.length;i++){
temp = input[i];
int j=i-1;
for(;j>=0&&temp<input[j];j--){
input[j+1] = input[j];
}
input[j+1] = temp;
}
return input;
}
}


abin 2014-10-19 01:20 鍙戣〃璇勮
]]>
褰掑茍鎺掑簭(java)http://m.tkk7.com/stevenjohn/archive/2014/10/17/418861.htmlabinabinFri, 17 Oct 2014 10:31:00 GMThttp://m.tkk7.com/stevenjohn/archive/2014/10/17/418861.htmlhttp://m.tkk7.com/stevenjohn/comments/418861.htmlhttp://m.tkk7.com/stevenjohn/archive/2014/10/17/418861.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/418861.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/418861.htmlpackage com.abin.lee.algorithm.merge;
import java.util.Arrays;
/**
 * 褰掑茍鎺掑簭
 */
public class MergeSort {
public static void main(String[] args) {
int[] input = {2,7,3,9,1,6,0,5,4,8};
MergeSort.sort(input, 0, input.length-1);
System.out.println("input="+Arrays.toString(input));
}
//棣栧厛鍒嗚岃嚜娌?/div>
/** 
     * 褰掑茍鎺掑簭 
     * 綆浠?灝嗕袱涓紙鎴栦袱涓互涓婏級鏈夊簭琛ㄥ悎騫舵垚涓涓柊鐨勬湁搴忚〃 鍗蟲妸寰呮帓搴忓簭鍒楀垎涓鴻嫢騫蹭釜瀛愬簭鍒楋紝姣忎釜瀛愬簭鍒楁槸鏈夊簭鐨勩傜劧鍚庡啀鎶婃湁搴忓瓙搴忓垪鍚堝茍涓烘暣浣撴湁搴忓簭鍒?nbsp;
     * 鏃墮棿澶嶆潅搴︿負O(nlogn) 
     * 紼沖畾鎺掑簭鏂瑰紡 
     * @param nums 寰呮帓搴忔暟緇?nbsp;
     * @return 杈撳嚭鏈夊簭鏁扮粍 
     */  
public static int[] sort(int[] input,int low,int high){
int middle = (low+high)/2;
if(low<high){
//宸﹁竟
sort(input,low,middle);
//鍙寵竟
sort(input,middle+1,high);
//宸﹀彸褰掑茍
merge(input,low,high,middle);
}
return input;
}
public static void merge(int[] input,int low,int high,int middle){
int[] temp = new int[high-low+1];
int i = low;//宸︽寚閽?/div>
int j = middle+1;//鍙蟲寚閽?/div>
int k=0;
// 鎶婅緝灝忕殑鏁板厛縐誨埌鏂版暟緇勪腑  
while(i<=middle&&j<=high){
if(input[i]<input[j]){
temp[k++] = input[i++];
}else{
temp[k++] = input[j++];
}
}
// 鎶婂乏杈瑰墿浣欑殑鏁扮Щ鍏ユ暟緇? 
while(i<=middle){
temp[k++] = input[i++];
}
// 鎶婂彸杈硅竟鍓╀綑鐨勬暟縐誨叆鏁扮粍  
while(j<=high){
temp[k++] = input[j++];
}
// 鎶婃柊鏁扮粍涓殑鏁拌鐩杋nput鏁扮粍  
for(int m=0;m<temp.length;m++){
input[m+low] = temp[m];
}
}
}


abin 2014-10-17 18:31 鍙戣〃璇勮
]]>浜屽垎鏌ユ壘娉?java)http://m.tkk7.com/stevenjohn/archive/2014/10/11/418605.htmlabinabinFri, 10 Oct 2014 16:03:00 GMThttp://m.tkk7.com/stevenjohn/archive/2014/10/11/418605.htmlhttp://m.tkk7.com/stevenjohn/comments/418605.htmlhttp://m.tkk7.com/stevenjohn/archive/2014/10/11/418605.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/418605.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/418605.html//閫掑綊鎬?br />package com.abin.lee.algorithm.binary;
public class BinarySearch {
public static void main(String[] args) {
int[] input = new int[]{2,3,4,5,6,7,8,9}; 
int result = search(input, 5, 0, input.length-1);
System.out.println("result="+result);
}
public static int search(int[] input,int data,int low,int high){
int middle = (low+high)/2;
if(data == input[middle]){
return middle;
}else if(data > input[middle]){
return search(input, data, middle+1, high);
}else if(data < input[middle]){
return search(input, data, low, middle-1);
}else{
return -1;
}
}
}


//while寰幆鍨?br />
public static int binary(int[] input,int low,int high,int target){
while(low <= high){
int middle = (low+high)/2;
if(input[middle]>target){
high = middle-1;
}else if(input[middle]<target){
low = middle+1;
}else{
return middle;
}
}
return -1;
}


abin 2014-10-11 00:03 鍙戣〃璇勮
]]>蹇熸帓搴?java)http://m.tkk7.com/stevenjohn/archive/2014/10/10/418603.htmlabinabinFri, 10 Oct 2014 15:43:00 GMThttp://m.tkk7.com/stevenjohn/archive/2014/10/10/418603.htmlhttp://m.tkk7.com/stevenjohn/comments/418603.htmlhttp://m.tkk7.com/stevenjohn/archive/2014/10/10/418603.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/418603.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/418603.htmlpackage com.abin.lee.algorithm.fast;
public class SpeedSort {
public static void main(String[] args) {
int[] input = new int[]{1,6,3,5,2,4};
quickSort(input, 0, input.length-1);
for(int i=0;i<input.length;i++){
System.out.println("input["+i+"]="+input[i]);
}
}
//鍒嗕負鍙傜収鐗╃殑澶у皬涓ょ粍
public static int getMiddle(int[] input,int low,int high){
int temp = input[low];
while(low<high){
while(low<high && input[high]>temp){
high--;
}
input[low]=input[high];
while(low<high && input[low]<temp){
low++;
}
input[high]=input[low];
}
input[low]=temp;
return low;
}
//鍒嗚岃嚜娌?/div>
public static void quickSort(int[] input,int low,int high){
if(low<high){
int middle = getMiddle(input, low, high);
quickSort(input,low,middle-1);
quickSort(input,middle+1,high);
}
}
}


蹇熸帓搴?nbsp;瀵瑰啋娉℃帓搴忕殑涓縐嶆敼榪涳紝鑻ュ垵濮嬭褰曞簭鍒楁寜鍏抽敭瀛楁湁搴忔垨鍩烘湰鏈夊簭錛岃湑鍖栦負鍐掓場鎺掑簭銆備嬌鐢ㄧ殑鏄掑綊鍘熺悊錛屽湪鎵鏈夊悓鏁伴噺綰(n longn) 鐨勬帓搴忔柟娉曚腑錛屽叾騫沖潎鎬ц兘鏈濂姐傚氨騫沖潎鏃墮棿鑰岃█錛屾槸鐩墠琚涓烘渶濂界殑涓縐?u>鍐呴儴鎺掑簭鏂規硶
鍩烘湰鎬濇兂鏄細閫氳繃涓韜烘帓搴忓皢瑕佹帓搴忕殑鏁版嵁鍒嗗壊鎴愮嫭绔嬬殑涓ら儴鍒嗭紝鍏朵腑涓閮ㄥ垎鐨勬墍鏈夋暟鎹兘姣斿彟澶栦竴閮ㄥ垎鐨勬墍鏈夋暟鎹兘瑕佸皬錛岀劧鍚庡啀鎸夋鏂規硶瀵硅繖涓ら儴鍒嗘暟鎹垎鍒繘琛屽揩閫熸帓搴忥紝鏁翠釜鎺掑簭榪囩▼鍙互閫掑綊榪涜錛屼互姝よ揪鍒版暣涓暟鎹彉鎴愭湁搴忓簭鍒椼?br /> 涓変釜鎸囬拡: 絎竴涓寚閽堢О涓簆ivotkey鎸囬拡錛堟灑杞達級錛岀浜屼釜鎸囬拡鍜岀涓変釜鎸囬拡鍒嗗埆涓簂eft鎸囬拡鍜宺ight鎸囬拡錛屽垎鍒寚鍚戞渶宸﹁竟鐨勫煎拰鏈鍙寵竟鐨勫箋俵eft鎸囬拡鍜宺ight鎸囬拡浠庝袱杈瑰悓鏃跺悜涓棿閫艱繎錛屽湪閫艱繎鐨勮繃紼嬩腑涓嶅仠鐨勪笌鏋㈣醬姣旇緝錛屽皢姣旀灑杞村皬鐨勫厓绱犵Щ鍒頒綆绔紝灝嗘瘮鏋㈣醬澶х殑鍏冪礌縐誨埌楂樼錛屾灑杞撮夊畾鍚庢案榪滀笉鍙橈紝鏈緇堝湪涓棿錛屽墠灝忓悗澶с?br />

闇瑕佷袱涓嚱鏁幫細

① 閫掑綊鍑芥暟  public static void quickSort(int[]n ,int left,int right)
② 鍒嗗壊鍑芥暟錛堜竴瓚熷揩閫熸帓搴忓嚱鏁幫級 public static int partition(int[]n ,int left,int right)

JAVA婧愪唬鐮侊紙鎴愬姛榪愯錛?/span>錛?br />


package testSortAlgorithm;
public class QuickSort {
public static void main(String[] args) {
int [] array = {49,38,65,97,76,13,27};
quickSort(array, 0, array.length - 1);
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
/*鍏堟寜鐓ф暟緇勪負鏁版嵁鍘熷瀷鍐欏嚭綆楁硶錛屽啀鍐欏嚭鎵╁睍鎬х畻娉曘傛暟緇剓49,38,65,97,76,13,27}
* */
public static void quickSort(int[]n ,int left,int right){
int pivot;
if (left < right) {
//pivot浣滀負鏋㈣醬錛岃緝涔嬪皬鐨勫厓绱犲湪宸︼紝杈冧箣澶х殑鍏冪礌鍦ㄥ彸
pivot = partition(n, left, right);
//瀵瑰乏鍙蟲暟緇勯掑綊璋冪敤蹇熸帓搴忥紝鐩村埌欏哄簭瀹屽叏姝g‘
quickSort(n, left, pivot - 1);
quickSort(n, pivot + 1, right);
}
}
public static int partition(int[]n ,int left,int right){
int pivotkey = n[left];
//鏋㈣醬閫夊畾鍚庢案榪滀笉鍙橈紝鏈緇堝湪涓棿錛屽墠灝忓悗澶?/div>
while (left < right) {
while (left < right && n[right] >= pivotkey) --right;
//灝嗘瘮鏋㈣醬灝忕殑鍏冪礌縐誨埌浣庣錛屾鏃秗ight浣嶇浉褰撲簬絀猴紝絳夊緟浣庝綅姣攑ivotkey澶х殑鏁拌ˉ涓?/div>
n[left] = n[right];
while (left < right && n[left] <= pivotkey) ++left;
//灝嗘瘮鏋㈣醬澶х殑鍏冪礌縐誨埌楂樼錛屾鏃秎eft浣嶇浉褰撲簬絀猴紝絳夊緟楂樹綅姣攑ivotkey灝忕殑鏁拌ˉ涓?/div>
n[right] = n[left];
}
//褰搇eft == right錛屽畬鎴愪竴瓚熷揩閫熸帓搴忥紝姝ゆ椂left浣嶇浉褰撲簬絀猴紝絳夊緟pivotkey琛ヤ笂
n[left] = pivotkey;
return left;
}
}






abin 2014-10-10 23:43 鍙戣〃璇勮
]]>鍗曢摼琛ㄧ殑瀹炵幇(java)http://m.tkk7.com/stevenjohn/archive/2014/10/10/418602.htmlabinabinFri, 10 Oct 2014 14:46:00 GMThttp://m.tkk7.com/stevenjohn/archive/2014/10/10/418602.htmlhttp://m.tkk7.com/stevenjohn/comments/418602.htmlhttp://m.tkk7.com/stevenjohn/archive/2014/10/10/418602.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/418602.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/418602.htmlpackage com.abin.lee.list.test;
public class SingleList {
private Object obj;
private transient SingleList singleList;
private SingleList next;
private SingleList pre;
private transient int size;
public SingleList() {
singleList = new SingleList(null,null,null);
singleList.next = singleList.pre = singleList;
size=0;
}
public SingleList(Object obj,SingleList next,SingleList pre) {
this.obj=obj;
this.next=next;
this.pre=pre;
}
public void add(Object obj){
SingleList current = new SingleList(obj,singleList,singleList.pre);
current.next.pre = current;
current.pre.next = current;
size++;
singleList = current;
}
public int size(){
return size;
}
public Object get(int index){
SingleList current = singleList.next;
for(int i=0;i<index;i++){
current = current.next;
}
return current.obj;
}
public static void main(String[] args) {
SingleList single = new SingleList();
for(int i=0;i<5;i++){
single.add("abin"+i);
}
System.out.println("single="+single);
int size = single.size();
System.out.println("size="+size);
Object element = single.get(0);
System.out.println("element="+element);
}
}


abin 2014-10-10 22:46 鍙戣〃璇勮
]]>Java 甯稿父琚棶鍒扮殑綆楁硶http://m.tkk7.com/stevenjohn/archive/2013/09/24/404354.htmlabinabinTue, 24 Sep 2013 00:50:00 GMThttp://m.tkk7.com/stevenjohn/archive/2013/09/24/404354.htmlhttp://m.tkk7.com/stevenjohn/comments/404354.htmlhttp://m.tkk7.com/stevenjohn/archive/2013/09/24/404354.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/404354.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/404354.html 浜屽弶鏍戠浉鍏崇殑闂殑姣旇緝澶?br />浜屽垎鏌ユ壘
treemap鍜屾煇浜涙暟鎹簱绱㈠紩鐨勭殑搴曞眰鏄孩榛戞爲
閾捐〃鐨勭浉浜ゅ拰闂幆
 閽堝浜屽弶鏍戯紝姣斿鍒嗗眰閬嶅巻錛屾壘鏈榪戠埗鑺傜偣
鍦ㄥ瓧絎︿覆涓壘鍥炴枃涓詫紝鏁扮粍涓鎵鵑噸澶嶇殑鏁板瓧鎴栫浉閭諱箣鍜岀殑鏈澶т覆
 綰㈤粦鏍戜笉灝辨槸B鏍戜箞
 濡傛灉娌℃湁閬囧埌涓撲笟鑰冪畻娉曠殑鍏徃錛屽彧鑳借榪樻病闈㈣瘯榪囩墰鍏徃錛屽氨鐩稿綋浜庣紪紼嬫劅瑙変笉鍒版暟鎹粨鏋勶紝鐩稿綋浜庣紪紼嬭繕娌″叆闂?/div>
 鏄縐頒簩鍙塀鏍?br />榪樻槸鏈夌偣涓嶄竴鏍鳳紝鏄叾瀛愰泦錛岃瀵間綘浜?/div>


abin 2013-09-24 08:50 鍙戣〃璇勮
]]>java 鎺掑簭綆楁硶鏈夊灝戠http://m.tkk7.com/stevenjohn/archive/2013/09/05/403727.htmlabinabinThu, 05 Sep 2013 11:49:00 GMThttp://m.tkk7.com/stevenjohn/archive/2013/09/05/403727.htmlhttp://m.tkk7.com/stevenjohn/comments/403727.htmlhttp://m.tkk7.com/stevenjohn/archive/2013/09/05/403727.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/403727.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/403727.html鍐掓場鎺掑簭錛坆ubble sort錛?— O(n2)
楦″熬閰掓帓搴?(Cocktail sort, 鍙屽悜鐨勫啋娉℃帓搴? — O(n2)
鎻掑叆鎺掑簭 錛坕nsertion sort錛?#8212; O(n2)
妗舵帓搴?錛坆ucket sort錛?#8212; O(n); 闇瑕?O(k) 棰濆 璁板繂浣?
璁℃暟鎺掑簭 (counting sort) — O(n+k); 闇瑕?O(n+k) 棰濆 璁板繂浣?
褰掑茍鎺掑簭 錛坢erge sort錛?#8212; O(n log n); 闇瑕?O(n) 棰濆璁板繂浣?
鍘熷湴褰掑茍鎺掑簭 — O(n2)
浜屽弶鏍戞帓搴?錛圔inary tree sort錛?— O(n log n); 闇瑕?O(n) 棰濆璁板繂浣?
楦藉發鎺掑簭 (Pigeonhole sort) — O(n+k); 闇瑕?O(k) 棰濆璁板繂浣?
鍩烘暟鎺掑簭 錛坮adix sort錛?#8212; O(n·k); 闇瑕?O(n) 棰濆璁板繂浣?
Gnome sort — O(n2)
Library sort — O(n log n) with high probability, 闇瑕?(1+ε)n 棰濆璁板繂浣撲笉紼沖畾
閫夋嫨鎺掑簭 錛坰election sort錛?#8212; O(n2)
甯屽皵鎺掑簭 錛坰hell sort錛?#8212; O(n log n) 濡傛灉浣跨敤鏈浣崇殑鐜板湪鐗堟湰
Comb sort — O(n log n)
鍫嗘帓搴?錛坔eapsort錛?#8212; O(n log n)
Smoothsort — O(n log n)
蹇熸帓搴?錛坬uicksort錛?#8212; O(n log n) 鏈熸湜鏃墮棿, O(n2) 鏈鍧忔儏鍐? 瀵規柤澶х殑銆佷貢鏁頒覆鍒椾竴鑸浉淇℃槸鏈蹇殑宸茬煡鎺掑簭

abin 2013-09-05 19:49 鍙戣〃璇勮
]]>
Java 甯哥敤綆楁硶http://m.tkk7.com/stevenjohn/archive/2013/09/05/403717.htmlabinabinThu, 05 Sep 2013 08:27:00 GMThttp://m.tkk7.com/stevenjohn/archive/2013/09/05/403717.htmlhttp://m.tkk7.com/stevenjohn/comments/403717.htmlhttp://m.tkk7.com/stevenjohn/archive/2013/09/05/403717.html#Feedback0http://m.tkk7.com/stevenjohn/comments/commentRss/403717.htmlhttp://m.tkk7.com/stevenjohn/services/trackbacks/403717.html1銆佸啋娉℃帓搴忥細
鍐掓場鎺掑簭錛圔ubbleSort錛夌殑鍩烘湰姒傚康鏄細渚濇姣旇緝鐩擱偦鐨勪袱涓暟錛屽皢灝忔暟鏀懼湪鍓嶉潰錛屽ぇ鏁版斁鍦ㄥ悗闈€傚嵆鍦ㄧ涓瓚燂細棣栧厛姣旇緝絎?涓拰絎?涓暟錛屽皢灝忔暟鏀懼墠錛屽ぇ鏁版斁鍚庛傜劧鍚庢瘮杈冪2涓暟鍜岀3涓暟錛屽皢灝忔暟鏀懼墠錛屽ぇ鏁版斁鍚庯紝濡傛緇х畫錛岀洿鑷蟲瘮杈冩渶鍚庝袱涓暟錛屽皢灝忔暟鏀懼墠錛屽ぇ鏁版斁鍚庛傝嚦姝ょ涓瓚熺粨鏉燂紝灝嗘渶澶х殑鏁版斁鍒頒簡鏈鍚庛傚湪絎簩瓚燂細浠嶄粠絎竴瀵規暟寮濮嬫瘮杈冿紙鍥犱負鍙兘鐢變簬絎?涓暟鍜岀3涓暟鐨勪氦鎹紝浣垮緱絎?涓暟涓嶅啀灝忎簬絎?涓暟錛夛紝灝嗗皬鏁版斁鍓嶏紝澶ф暟鏀懼悗錛屼竴鐩存瘮杈冨埌鍊掓暟絎簩涓暟錛堝掓暟絎竴鐨勪綅緗笂宸茬粡鏄渶澶х殑錛夛紝絎簩瓚熺粨鏉燂紝鍦ㄥ掓暟絎簩鐨勪綅緗笂寰楀埌涓涓柊鐨勬渶澶ф暟錛堝叾瀹炲湪鏁翠釜鏁板垪涓槸絎簩澶х殑鏁幫級銆傚姝や笅鍘伙紝閲嶅浠ヤ笂榪囩▼錛岀洿鑷蟲渶緇堝畬鎴愭帓搴忋?

鍏蜂綋浠g爜渚嬩竴錛?br />

package com.abin.lee.algorithm.bubble;

public class BubbleSort {
 public static void main(String[] args) {
  int[] start={5,2,1,3,6,4};
  int[] end=sort(start);
  for(int i=0;i<end.length;i++){
   System.out.println("end["+i+"]="+end[i]);
  }
 }
 
 public static int[] sort(int[] input){
  int temp=0;

  //鏈澶氬仛n-1瓚熸帓搴?/div>  for(int i=0;i<input.length-1;i++){
    //瀵瑰綋鍓嶆棤搴忓尯闂磗core[0......length-i-1]榪涜鎺掑簭(j鐨勮寖鍥村緢鍏抽敭錛岃繖涓寖鍥存槸鍦ㄩ愭緙╁皬鐨?
   for(int j=0;j<input.length-i-1;j++){
    //鎶婂ぇ鐨勫間氦鎹㈠埌鍚庨潰
    if(input[j]>input[j+1]){
     temp=input[j];
     input[j]=input[j+1];
     input[j+1]=temp;
    }
    StringBuffer stb=new StringBuffer();
    for(int k=0;k<input.length;k++){
     stb.append("input["+k+"]="+input[k]+" ");
    }
    System.out.println("i="+i+",j="+j+" = "+stb.toString());
   }
  }
  return input;
 }

 

}


2銆侀夋嫨鎺掑簭錛?br />閫夋嫨鎺掑簭(Straight Select Sorting) 涔熸槸涓縐嶇畝鍗曠殑鎺掑簭鏂規硶錛屽畠鐨勫熀鏈濇兂鏄細絎竴嬈′粠R[0]~R[n-1]涓夊彇鏈灝忓鹼紝涓嶳[0]浜ゆ崲錛岀浜屾浠嶳{1}~R[n-1]涓夊彇鏈灝忓鹼紝涓嶳[1]浜ゆ崲錛?...錛?nbsp;  絎琲嬈′粠R[i-1]~R[n-1]涓夊彇鏈灝忓鹼紝涓嶳[i-1]浜ゆ崲錛?....錛岀n-1嬈′粠R[n-2]~R[n-1]涓夊彇鏈灝忓鹼紝涓嶳[n-2]浜ゆ崲,鎬誨叡閫氳繃n-1嬈?寰楀埌涓涓寜鎺掑簭鐮佷粠灝忓埌澶ф帓鍒楃殑鏈夊簭搴忓垪.
鍏蜂綋浠g爜錛?br />

package com.abin.lee.algorithm.select;

public class SelectSort {
 public static void main(String[] args) {
  int[] start={5,2,3,1,6,4};
  start=sort(start);
  for(int i=0;i<start.length;i++){
   System.out.println("start["+i+"]="+start[i]);
  }
 }
 public static int[] sort(int[] input){
  int temp=0;
  for(int i=0;i<input.length;i++){
   for(int j=i+1;j<input.length;j++){
    if(input[i]>input[j]){
     temp=input[i];
     input[i]=input[j];
     input[j]=temp;
    }
    StringBuffer stb=new StringBuffer();
    for(int k=0;k<input.length;k++){
     stb.append("input["+k+"]="+input[k]+" ");
    }
    System.out.println("i="+i+",j="+j+" = "+stb.toString());
   }
  }
  return input;
 }
}




3銆佽杈撳叆涓涓暟瀛楋紝姣斿4錛岃緭鍑轟負錛?br />1
2 3
4 5 6
7 8 9 10

浠g爜濡備笅錛?br />

package com.abin.lee.photo;

public class TestInputNumber {
 public static void main(String[] args) {
  int n=4;
  output(n);
 }
 public static void output(int n){
  int temp=1;
  for(int i=1;i<=n;i++){
   for(int j=0;j<i;j++){
    System.out.print(temp+" ");
    temp++;
   }
   System.out.println("");
  }
  
 }
}


4.浜屽弶鏍戠畻娉?br />

package com.abin.lee.algorithm.binary;

public class BinaryNode {
 public int data;//鏍硅妭鐐?br /> BinaryNode left;//宸﹁妭鐐?br /> BinaryNode right;//鍙寵妭鐐?br /> 
 public BinaryNode(int data,BinaryNode left,BinaryNode right) {
  this.data=data;
  this.left=left;
  this.right=right;
 }
 
 public int getData() {
  return data;
 }
 public void setData(int data) {
  this.data = data;
 }
 public BinaryNode getLeft() {
  return left;
 }
 public void setLeft(BinaryNode left) {
  this.left = left;
 }
 public BinaryNode getRight() {
  return right;
 }
 public void setRight(BinaryNode right) {
  this.right = right;
 }
}




package com.abin.lee.algorithm.binary;

public class BinaryTree {
 //鍓嶅簭閬嶅巻
 public static void preOrder(BinaryNode root){
  if(null!=root){
   System.out.print(root.data+"-");
   preOrder(root.left);
   preOrder(root.right);
  }
 }
 //涓簭閬嶅巻
 public static void inOrder(BinaryNode root){
  if(null!=root){
   inOrder(root.left);
   System.out.print(root.data+"--");
   inOrder(root.right);
  }
 }
 //鍚庡簭閬嶅巻
 public static void postOrder(BinaryNode root){
  if(null!=root){
   postOrder(root.left);
   postOrder(root.right);
   System.out.print(root.data+"---");
  }
 }
 
 public static void main(String[] args) {
  BinaryNode one=new BinaryNode(1,null,null);
  BinaryNode three=new BinaryNode(3,null,null);
  BinaryNode two=new BinaryNode(2,three,one);
  BinaryNode four=new BinaryNode(4,one,two);
  BinaryNode five=new BinaryNode(5,four,one);
  System.out.println("preOrder");
  preOrder(five);
  System.out.println();
  System.out.println("inOrder");
  inOrder(five);
  System.out.println();
  System.out.println("postOrder");
  postOrder(five);
  System.out.println();
  
 }

}


杈撳嚭緇撴灉錛?br />preOrder
5-4-1-2-3-1-1-
inOrder
1--4--3--2--1--5--1--
postOrder
1---3---1---2---4---1---5---




5銆乯ava鎻掑叆鎺掑簭

鎻掑叆寮忔帓搴忔硶——鎻掑叆鎺掑簭娉?/span>

鎻掑叆鎺掑簭錛圛nsertion Sortion錛夌殑鍩烘湰鎬濇兂鏄細鎶?/span>n涓緟鎺掑簭鐨勫厓绱犵湅鎴愪竴涓湁搴忚〃鍜屼竴涓棤搴忚〃錛屽紑濮嬫湁搴忚〃鍙寘鍚竴涓厓绱狅紝鏃犲簭琛ㄤ腑鍖呭惈n-1涓厓绱狅紝鎺掑簭榪囩▼涓瘡嬈′粠鏃犲簭琛ㄤ腑鍙栧嚭絎竴涓厓绱狅紝鎶婂畠鐨勬帓搴忕爜渚濇涓庢湁搴忚〃鍏冪礌鐨勬帓搴忕爜榪涜姣旇緝錛屽皢瀹冩彃鍏ュ埌鏈夊簭琛ㄤ腑鐨勯傚綋浣嶇疆錛屼嬌涔嬫垚涓烘柊鐨勬湁搴忚〃銆?/span>


public class InjectionSort  //瀹氫箟涓涓?InjectionSort 綾?br />public static void injectionSort(int[] number) //浼犳暟緇?br />for(int j = 1;j<number.length;j++)//寰幆
int tmp = number[j]; //寰幆鎶婃暟緇勭浜屼釜鍊兼斁鍒皌mp閲?br />int i = j-1//緇檌 璧嬪?br />while(tmp<number[i]) //tmp鍊煎拰鏁扮粍絎竴涓兼瘮杈冭皝灝?br />number[i+1] = number[i]; //濡傛灉灝忎簬灝辨妸絎竴涓艱祴鍊肩粰絎簩涓?br />i--;
if(i == -1)//濡傛灉i鍊?-1
break; //閫鍑哄驚鐜?br />number[i+1] = tmp //鍥犱負姣旇緝鏁扮粍閲岀殑鍓嶄竴涓瘮鍚庝竴涓繖鏍峰氨鎹氦浜嗗疄鐜頒簡鎶婂皬鐨勬斁鍦ㄥ墠闈?br />榪欐槸絎竴嬈★紝鍥犱負寰幆鏄竴涓暟緇勶紝鍚庤竟鐨勫氨涓嬈″線涓嬪驚鐜紝鏈鍚庡氨鎶婃暟緇勯噷鐨勯『搴忎粠灝忓埌澶ф帓搴忎簡
public static void main(String[] args){
int[] num = {5,46,26,67,2,35};//瀹氫箟鏁扮粍num
injectionSort(num);//璋冪敤鏂規硶
for(int i = 0;i<num.length;i++){
System.out.println(num[i]);//鏄劇ず鎺掑簭鍚庣殑鏁扮粍錛屼竴琛屾樉紺轟竴涓?br />
綆鍗曡灝辨槸鏁扮粍閲岀浜屼釜鍜岀涓涓瘮璋佸皬錛屾妸灝忕殑鏀懼埌絎竴涓噷錛屽ぇ鐨勬斁鍒扮浜屼釜閲岋紝鐒跺悗絎簩涓啀鍜岀涓変釜姣旓紝灝忕殑榪樻槸鏀懼湪鍓嶏紝涓鐩存瘮鍒拌繖涓暟緇勭粨鏉燂紝榪欐牱灝卞疄鐜頒簡浠庡皬鍒板ぇ錛屽笇鏈涙垜璇寸殑澶熻緇?/pre>

鎻掑叆鎺掑簭浠g爜while寰幆錛?br />
package com.abin.lee.algorithm.insert;
public class InsertSort {
public static void main(String[] args) {
int[] input = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };
input=sort(input);
for (int i = 0; i < input.length; i++) {
System.out.print(input[i] + "  ");
}
}
public static int[] sort(int[] input) {
for (int i = 1; i < input.length; i++) {
int insertVal = input[i];
// insertValue鍑嗗鍜屽墠涓涓暟姣旇緝
int index = i - 1;
while (index >= 0 && insertVal < input[index]) {
// 灝嗘妸input[index]鍚戝悗縐誨姩
input[index + 1] = input[index];
// 璁﹊ndex鍚戝墠縐誨姩涓浣?/div>
index--;
}
// 灝唅nsertValue鎻掑叆鍒伴傚綋浣嶇疆
input[index + 1] = insertVal;
//涓嬮潰榪欎釜寰幆鏄負浜嗘墦鍗頒竴涓嬩腑闂寸殑寰幆鐪嬬湅鏄笉鏄彃鍏ユ帓搴忕殑姝g‘綆楁硶
StringBuffer stb=new StringBuffer();
for(int k=0;k<input.length;k++){
stb.append(input[k]+" ");
}
System.out.println("i="+i+" = "+stb.toString());
}
return input;
}
}


鎻掑叆鎺掑簭for寰幆浠g爜錛?br />
package com.abin.lee.algorithm.insert;
public class DoInsertSort {
public static void main(String[] args) {
int[] input={5,4,6,3,7,2,8,1,0,9};
input=sort(input);
for(int i=0;i<input.length;i++){
System.out.print("input["+i+"]="+input[i]+" ");
}
}
public static int[] sort(int[] input){
for(int i=1;i<input.length;i++){
int temp=input[i];
int j;
for(j=i;j>0;j--){
if(temp<input[j-1]){
input[j]=input[j-1];
}else{
break;
}
}
input[j]=temp;
//涓嬮潰榪欎釜寰幆鏄負浜嗘墦鍗頒竴涓嬩腑闂寸殑寰幆鐪嬬湅鏄笉鏄彃鍏ユ帓搴忕殑姝g‘綆楁硶
StringBuffer stb=new StringBuffer();
for(int k=0;k<input.length;k++){
stb.append(input[k]+" ");
}
System.out.println("i="+i+" = "+stb.toString());
}
return input;
}
}


 

浜屽垎鏌ユ壘鍙堢О鎶樺崐鏌ユ壘錛屽畠鏄竴縐嶆晥鐜囪緝楂樼殑鏌ユ壘鏂規硶銆?/p>

鎶樺崐鏌ユ壘鐨勭畻娉曟濇兂鏄皢鏁板垪鎸夋湁搴忓寲(閫掑鎴栭掑噺)鎺掑垪錛屾煡鎵捐繃紼嬩腑閲囩敤璺寵穬寮忔柟寮忔煡鎵撅紝鍗沖厛浠ユ湁搴忔暟鍒楃殑涓偣浣嶇疆涓烘瘮杈冨璞★紝濡傛灉瑕佹壘鐨勫厓绱犲煎皬浜庤涓偣鍏冪礌錛屽垯灝嗗緟鏌ュ簭鍒楃緝灝忎負宸﹀崐閮ㄥ垎錛屽惁鍒欎負鍙沖崐閮ㄥ垎銆傞氳繃涓嬈℃瘮杈冿紝灝嗘煡鎵懼尯闂寸緝灝忎竴鍗娿?鎶樺崐鏌ユ壘鏄竴縐嶉珮鏁堢殑鏌ユ壘鏂規硶銆傚畠鍙互鏄庢樉鍑忓皯姣旇緝嬈℃暟錛屾彁楂樻煡鎵炬晥鐜囥備絾鏄紝鎶樺崐鏌ユ壘鐨勫厛鍐蟲潯浠舵槸鏌ユ壘琛ㄤ腑鐨勬暟鎹厓绱犲繀欏繪湁搴忋?/span>

package com.abin.algorithm.template.half;

public class BinarySearch {
public static void main(String[] args) {
int[] src=new int[]{1,3,5,7,9,11};
int result=binarySearch(src, 3);
System.out.println("result="+result);
int status=binarySearch(src, 9 ,0 ,src.length);
System.out.println("status="+status);
}
//寰幆瀹炵幇
public static int binarySearch(int[] src,int key){
int low=0;
int high=src.length-1;
while(low<=high){
int middle=(low+high)/2;
if(key==src[middle]){
return middle;
}else if(key<src[middle]){
high=middle-1;
}else{
low=middle+1;
}
}
return -1;
}
//閫掑綊瀹炵幇
public static int binarySearch(int[] src,int key,int low,int high){
int middle=(low+high)/2;
if(src[middle]==key){
return middle;
}else if(low>=high){
return -1;
}else if(src[middle]>key){
return binarySearch(src, key, low, middle-1);
}else if(src[middle]<key){
return binarySearch(src, key, middle+1, high);
}
return -1;
}

}




abin 2013-09-05 16:27 鍙戣〃璇勮
]]> 主站蜘蛛池模板: 亚洲成a人一区二区三区| 四虎免费大片aⅴ入口| 久久精品亚洲福利| 一级特黄录像免费播放中文版| 国产精品酒店视频免费看| 亚洲日本成本人观看| 日韩午夜免费视频| 精品亚洲成a人在线观看| 国产男女猛烈无遮挡免费网站 | 亚洲成AV人在线观看天堂无码| 国产高潮流白浆喷水免费A片 | 亚洲一区爱区精品无码| a毛片久久免费观看| 亚洲va在线va天堂va不卡下载| 少妇太爽了在线观看免费视频| 亚洲综合久久1区2区3区| 100000免费啪啪18免进| 亚洲人成未满十八禁网站| 国产一区二区三区免费视频| 一级毛片正片免费视频手机看| 亚洲产国偷V产偷V自拍色戒| 99re6在线精品视频免费播放| 久久久久精品国产亚洲AV无码| 国产美女被遭强高潮免费网站| 又硬又粗又长又爽免费看 | 亚洲色大成网站www永久一区| 久久精品免费视频观看| 天天爽亚洲中文字幕| 亚洲国产综合人成综合网站| 免费成人高清在线视频| 中文字幕无码亚洲欧洲日韩| 亚洲AⅤ视频一区二区三区| 日韩精品人妻系列无码专区免费 | 91青青国产在线观看免费| 国产亚洲福利在线视频| 亚洲无码视频在线| 99久久国产热无码精品免费| 黄色免费网站在线看| 久久国产亚洲高清观看| vvvv99日韩精品亚洲| 久视频精品免费观看99|