欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java中算法代碼 Java基本算法

java中基數(shù)排序算法代碼

/**??

成都創(chuàng)新互聯(lián)服務(wù)項目包括蘇州網(wǎng)站建設(shè)、蘇州網(wǎng)站制作、蘇州網(wǎng)頁制作以及蘇州網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,蘇州網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到蘇州省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

*?冒泡法排序br/??

*?li比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。/li??

*?li對每一對相鄰元素作同樣的工作,從開始第一對到結(jié)尾的最后一對。在這一點,最后的元素應(yīng)該會是最大的數(shù)。/li??

*?li針對所有的元素重復以上的步驟,除了最后一個。/li??

*?li持續(xù)每次對越來越少的元素重復上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。/li??

*???

*?@param?numbers??

*????????????需要排序的整型數(shù)組??

*/??

public?static?void?bubbleSort(int[]?numbers)?{???

int?temp;?//?記錄臨時中間值???

int?size?=?numbers.length;?//?數(shù)組大小???

for?(int?i?=?0;?i??size?-?1;?i++)?{???

for?(int?j?=?i?+?1;?j??size;?j++)?{???

if?(numbers[i]??numbers[j])?{?//?交換兩數(shù)的位置???

temp?=?numbers[i];???

numbers[i]?=?numbers[j];???

numbers[j]?=?temp;???

}???

}???

}???

}

java中排序算法代碼

package temp;

import sun.misc.Sort;

/**

* @author zengjl

* @version 1.0

* @since 2007-08-22

* @Des java幾種基本排序方法

*/

/**

* SortUtil:排序方法

* 關(guān)于對排序方法的選擇:這告訴我們,什么時候用什么排序最好。當人們渴望先知道排在前面的是誰時,

* 我們用選擇排序;當我們不斷拿到新的數(shù)并想保持已有的數(shù)始終有序時,我們用插入排序;當給出的數(shù)

* 列已經(jīng)比較有序,只需要小幅度的調(diào)整一下時,我們用冒泡排序。

*/

public class SortUtil extends Sort {

/**

* 插入排序法

* @param data

* @Des 插入排序(Insertion Sort)是,每次從數(shù)列中取一個還沒有取出過的數(shù),并按照大小關(guān)系插入到已經(jīng)取出的數(shù)中使得已經(jīng)取出的數(shù)仍然有序。

*/

public int[] insertSort(int[] data) {

1/11頁

int temp;

for (int i = 1; i data.length; i++) {

for (int j = i; (j 0) (data[j] data[j - 1]); j--) {

swap(data, j, j - 1);

}

}

return data;

}

/**

* 冒泡排序法

* @param data

* @return

* @Des 冒泡排序(Bubble Sort)分為若干趟進行,每一趟排序從前往后比較每兩個相鄰的元素的大小(因此一趟排序要比較n-1對位置相鄰的數(shù))并在

* 每次發(fā)現(xiàn)前面的那個數(shù)比緊接它后的數(shù)大時交換位置;進行足夠多趟直到某一趟跑完后發(fā)現(xiàn)這一趟沒有進行任何交換操作(最壞情況下要跑n-1趟,

* 這種情況在最小的數(shù)位于給定數(shù)列的最后面時發(fā)生)。事實上,在第一趟冒泡結(jié)束后,最后面那個數(shù)肯定是最大的了,于是第二次只需要對前面n-1

* 個數(shù)排序,這又將把這n-1個數(shù)中最小的數(shù)放到整個數(shù)列的倒數(shù)第二個位置。這樣下去,冒泡排序第i趟結(jié)束后后面i個數(shù)都已經(jīng)到位了,第i+1趟實

* 際上只考慮前n-i個數(shù)(需要的比較次數(shù)比前面所說的n-1要小)。這相當于用數(shù)學歸納法證明了冒泡排序的正確性

關(guān)于各種排列組合java算法實現(xiàn)方法

一 利用二進制狀態(tài)法求排列組合 此種方法比較容易懂 但是運行效率不高 小數(shù)據(jù)排列組合可以使用

復制代碼 代碼如下: import java util Arrays;

//利用二進制算法進行全排列 //count : //count :

public class test { public static void main(String[] args) { long start=System currentTimeMillis(); count (); long end=System currentTimeMillis(); System out println(end start); } private static void count (){ int[] num=new int []{ }; for(int i= ;iMath pow( );i++){ String str=Integer toString(i ); int sz=str length(); for(int j= ;j sz;j++){ str=" "+str; } char[] temp=str toCharArray(); Arrays sort(temp); String gl=new String(temp); if(!gl equals(" ")){ continue; } String result=""; for(int m= ;mstr length();m++){ result+=num[Integer parseInt(str charAt(m)+"")]; } System out println(result); } } public static void count (){ int[] num=new int []{ }; int[] ss=new int []{ }; int[] temp=new int[ ]; while(temp[ ] ){ temp[temp length ]++; for(int i=temp length ;i ;i ){ if(temp[i]== ){ temp[i]= ; temp[i ]++; } } int []tt=temp clone(); Arrays sort(tt); if(!Arrays equals(tt ss)){ continue; } String result=""; for(int i= ;inum length;i++){ result+=num[temp[i]]; } System out println(result); } } }

二 用遞歸的思想來求排列跟組合 代碼量比較大

復制代碼 代碼如下: package practice;

import java util ArrayList; import java util List;

public class Test {

/** * @param args */ public static void main(String[] args) { // TODO Auto generated method stub Object[] tmp={ }; // ArrayListObject[] rs=RandomC(tmp); ArrayListObject[] rs=cmn(tmp ); for(int i= ;irs size();i++) { // System out print(i+"="); for(int j= ;jrs get(i) length;j++) { System out print(rs get(i)[j]+" "); } System out println(); } }

// 求一個數(shù)組的任意組合 static ArrayListObject[] RandomC(Object[] source) { ArrayListObject[] result=new ArrayListObject[](); if(source length== ) { result add(source); } else { Object[] psource=new Object[source length ]; for(int i= ;ipsource length;i++) { psource[i]=source[i]; } result=RandomC(psource); int len=result size();//fn組合的長度 result add((new Object[]{source[source length ]})); for(int i= ;ilen;i++) { Object[] tmp=new Object[result get(i) length+ ]; for(int j= ;jtmp length ;j++) { tmp[j]=result get(i)[j]; } tmp[tmp length ]=source[source length ]; result add(tmp); } } return result; } static ArrayListObject[] cmn(Object[] source int n) { ArrayListObject[] result=new ArrayListObject[](); if(n== ) { for(int i= ;isource length;i++) { result add(new Object[]{source[i]}); } } else if(source length==n) { result add(source); } else { Object[] psource=new Object[source length ]; for(int i= ;ipsource length;i++) { psource[i]=source[i]; } result=cmn(psource n); ArrayListObject[] tmp=cmn(psource n ); for(int i= ;itmp size();i++) { Object[] rs=new Object[n]; for(int j= ;jn ;j++) { rs[j]=tmp get(i)[j]; } rs[n ]=source[source length ]; result add(rs); } } return result; }

}

三 利用動態(tài)規(guī)劃的思想求排列和組合

復制代碼 代碼如下: package Acm; //強大的求組合數(shù) public class MainApp { public static void main(String[] args) { int[] num=new int[]{ }; String str=""; //求 個數(shù)的組合個數(shù) // count( str num ); // 求 n個數(shù)的組合個數(shù) count ( str num); }

private static void count (int i String str int[] num) { if(i==num length){ System out println(str); return; } count (i+ str num); count (i+ str+num[i]+" " num); }

private static void count(int i String str int[] num int n) { if(n== ){ System out println(str); return; } if(i==num length){ return; } count(i+ str+num[i]+" " num n ); count(i+ str num n); } }

下面是求排列

復制代碼 代碼如下: lishixinzhi/Article/program/Java/JSP/201311/20148

網(wǎng)頁名稱:java中算法代碼 Java基本算法
瀏覽地址:http://chinadenli.net/article34/hjippe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司手機網(wǎng)站建設(shè)定制網(wǎng)站網(wǎng)站收錄App設(shè)計關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管