欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java基于遞歸解決全排列問題算法示例

 更新時(shí)間:2017年11月21日 10:05:27   作者:萌神哆啦A夢  
這篇文章主要介紹了Java基于遞歸解決全排列問題算法,結(jié)合實(shí)例形式分析了Java使用遞歸算法解決全排列問題的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了Java基于遞歸解決全排列問題算法。分享給大家供大家參考,具體如下:

排列問題

設(shè)R={r1,r2,...,rn}是要進(jìn)行排列的n個(gè)元素,Ri=R-{ri}。集合x中元素的全排列記為Perm(X)。(ri)Perm(X)表示在全排列Perm(X)的每一個(gè)排列前加上前綴ri得到的排列。R的全排列可歸納如下:

當(dāng)n=1時(shí),Perm(R)=(r),其中r是集合中唯一的元素;

當(dāng)n>1時(shí),Perm(R)(r1)Perm(R1),(r2)Perm(R2),(r3)Perm(R3)。。。。(rn)Perm(Rn)構(gòu)成。

public class AllSort {
  public static void perm(int[] list, int k, int m) {
    if( k == m) {
      for (int i = 0; i <=m; i++) {
        System.out.print(list[i]);
      }
      System.out.println();
    }
    else{
      for(int i = k; i <= m; i++) {
        swap(list,k,i);
        perm(list, k+1 , m);
        swap(list,k,i);
      }
    }
  }
  public static void swap(int[] list, int a, int b) {
    int temp;
    temp = list[a];
    list[a] = list[b];
    list[b] = temp;
  }
  public static void main(String args[]) {
    int[] list = new int[5];
    for(int i = 0; i < list.length; i++) {
      list[i] = i+1;
    }
    perm(list,0,list.length-1);
  }
}

運(yùn)行結(jié)果:

12345
12354
12435
12453
12543
12534
13245
13254
13425
13452
13542
13524
14325
14352
14235
14253
14523
14532
15342
15324
15432
15423
15243
15234
21345
21354
21435
21453
21543
21534
23145
23154
23415
23451
23541
23514
24315
24351
24135
24153
24513
24531
25341
25314
25431
25413
25143
25134
32145
32154
32415
32451
32541
32514
31245
31254
31425
31452
31542
31524
34125
34152
34215
34251
34521
34512
35142
35124
35412
35421
35241
35214
42315
42351
42135
42153
42513
42531
43215
43251
43125
43152
43512
43521
41325
41352
41235
41253
41523
41532
45312
45321
45132
45123
45213
45231
52341
52314
52431
52413
52143
52134
53241
53214
53421
53412
53142
53124
54321
54312
54231
54213
54123
54132
51342
51324
51432
51423
51243
51234

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • JavaMail實(shí)現(xiàn)發(fā)送超文本(html)格式郵件的方法

    JavaMail實(shí)現(xiàn)發(fā)送超文本(html)格式郵件的方法

    這篇文章主要介紹了JavaMail實(shí)現(xiàn)發(fā)送超文本(html)格式郵件的方法,實(shí)例分析了java發(fā)送超文本文件的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • java實(shí)現(xiàn)的統(tǒng)計(jì)字符算法示例

    java實(shí)現(xiàn)的統(tǒng)計(jì)字符算法示例

    這篇文章主要介紹了java實(shí)現(xiàn)的統(tǒng)計(jì)字符算法,涉及java針對字符的遍歷、判斷、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • Java匹配正則表達(dá)式匯總

    Java匹配正則表達(dá)式匯總

    java匹配字符串表達(dá)式在我們數(shù)據(jù)處理方面是及其重要的,現(xiàn)在就把我這幾天數(shù)據(jù)處理比較常用的向大家介紹一下,常規(guī)的一些匹配方式就不介紹了,我們來學(xué)習(xí)一些特殊的,感興趣的朋友跟隨小編一起看看吧
    2023-03-03
  • SpringBoot參數(shù)校驗(yàn)的最佳實(shí)戰(zhàn)教程

    SpringBoot參數(shù)校驗(yàn)的最佳實(shí)戰(zhàn)教程

    開發(fā)過程中,后臺的參數(shù)校驗(yàn)是必不可少的,下面這篇文章主要給大家介紹了關(guān)于SpringBoot參數(shù)校驗(yàn)的最佳實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • Java List接口的集合使用詳解

    Java List接口的集合使用詳解

    這篇文章主要介紹了Java集合操作之List接口及其實(shí)現(xiàn)方法,詳細(xì)分析了Java集合操作中List接口原理、功能、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2021-08-08
  • AgileBoot?項(xiàng)目內(nèi)統(tǒng)一的錯(cuò)誤碼設(shè)計(jì)分析

    AgileBoot?項(xiàng)目內(nèi)統(tǒng)一的錯(cuò)誤碼設(shè)計(jì)分析

    這篇文章主要為大家介紹了AgileBoot?項(xiàng)目內(nèi)統(tǒng)一的錯(cuò)誤碼設(shè)計(jì)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • java 實(shí)現(xiàn)Comparable接口排序,升序、降序、倒敘

    java 實(shí)現(xiàn)Comparable接口排序,升序、降序、倒敘

    這篇文章主要介紹了java 實(shí)現(xiàn)Comparable接口排序,升序、降序、倒敘,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java實(shí)現(xiàn)的可選擇及拖拽圖片的面板功能【基于swing組件】

    Java實(shí)現(xiàn)的可選擇及拖拽圖片的面板功能【基于swing組件】

    這篇文章主要介紹了Java實(shí)現(xiàn)的可選擇及拖拽圖片的面板功能,涉及java基于swing組件選擇與操作圖片元素的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01
  • java 對數(shù)和指數(shù)計(jì)算方式

    java 對數(shù)和指數(shù)計(jì)算方式

    這篇文章主要介紹了java 對數(shù)和指數(shù)計(jì)算方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java的關(guān)鍵字之transient詳解

    Java的關(guān)鍵字之transient詳解

    這篇文章主要介紹了Java的關(guān)鍵字之transient詳解,在Java編程中,transient是一個(gè)關(guān)鍵字,通常用于修飾變量,它的主要作用是用于指示JVM在對象序列化時(shí)忽略指定變量,從而避免數(shù)據(jù)泄露的安全問題,需要的朋友可以參考下
    2023-09-09

最新評論