真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

利用Java如何實(shí)現(xiàn)全排列算法和遞歸-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

為紅崗等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及紅崗網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、紅崗網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

利用Java如何實(shí)現(xiàn)全排列算法和遞歸?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

全排列:

從n個(gè)不同元素中任取m(m≤n)個(gè)元素,按照一定的順序排列起來(lái),叫做從n個(gè)不同元素中取出m個(gè)元素的一個(gè)排列。當(dāng)m=n時(shí)所有的排列情況叫全排列。
例如:

1 、2 、3三個(gè)元素的全排列為:

{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}。

------------------------------------------------------

解法1(遞歸)

如下圖:要對(duì)1、2、3、4進(jìn)行排序,第一個(gè)位置上的元素有四種可能:1或2或3或4,假如已經(jīng)確定了第一個(gè)元素為4,剩下的第二個(gè)位置上可以是1、2、3,很顯然這具有遞歸結(jié)構(gòu),如果原始要排列的數(shù)組順序?yàn)?、2、3、4,現(xiàn)在只要分別交換1、2,1、3,1、4然后對(duì)剩下的3個(gè)元素進(jìn)行遞歸的排列。

利用Java如何實(shí)現(xiàn)全排列算法和遞歸

代碼:

-----------------------------------------------

public void Permutation(char chs[],int start )
  {
    if(start==chs.length-1)
    {
      Arrays.toString(chs);
      //如果已經(jīng)到了數(shù)組的最后一個(gè)元素,前面的元素已經(jīng)排好,輸出。
    }
    for(int i=start;i<=chs.length-1;i++)
    {
    //把第一個(gè)元素分別與后面的元素進(jìn)行交換,遞歸的調(diào)用其子數(shù)組進(jìn)行排序
        Swap(chs,i,start);
        Permutation(chs,start+1);
        Swap(chs,i,start);
    //子數(shù)組排序返回后要將第一個(gè)元素交換回來(lái)。 
    //如果不交換回來(lái)會(huì)出錯(cuò),比如說(shuō)第一次1、2交換,第一個(gè)位置為2,子數(shù)組排序返回后如果不將1、2
    //交換回來(lái)第二次交換的時(shí)候就會(huì)將2、3交換,因此必須將1、2交換使1還是在第一個(gè)位置 
    }
  }
  public void Swap(char chs[],int i,int j)
  {
    char temp;
    temp=chs[i];
    chs[i]=chs[j];
    chs[j]=temp;
  }

網(wǎng)站標(biāo)題:利用Java如何實(shí)現(xiàn)全排列算法和遞歸-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://weahome.cn/article/pjehg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部