国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 高效的java版排列組合算法

高效的java版排列組合算法

2021-03-31 13:37wmj2003 Java教程

這篇文章主要為大家詳細(xì)介紹了高效的java版排列組合算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java排列組合算法的具體代碼,供大家參考,具體內(nèi)容如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package BeanUtil;
import java.util.ArrayList;
import java.util.List;
import com.work.core.exception.OurException;
/**
 * 統(tǒng)計(jì)任三出現(xiàn)的最多的幾率的組合
 *
 * @author wangmingjie
 * @date 2009-1-1下午01:22:19
 */
public class Copy_2_of_StatisAnyThree {
// 組合算法 
//  本程序的思路是開一個(gè)數(shù)組,其下標(biāo)表示1到m個(gè)數(shù),數(shù)組元素的值為1表示其下標(biāo) 
//  代表的數(shù)被選中,為0則沒選中。  
//  首先初始化,將數(shù)組前n個(gè)元素置1,表示第一個(gè)組合為前n個(gè)數(shù)。  
//  然后從左到右掃描數(shù)組元素值的“10”組合,找到第一個(gè)“10”組合后將其變?yōu)?nbsp;
//  “01”組合,同時(shí)將其左邊的所有“1”全部移動(dòng)到數(shù)組的最左端。  
//  當(dāng)?shù)谝粋€(gè)“1”移動(dòng)到數(shù)組的m-n的位置,即n個(gè)“1”全部移動(dòng)到最右端時(shí),就得 
//  到了最后一個(gè)組合。  
//  例如求5中選3的組合:  
//  1  1  1  0  0  //1,2,3  
//  1  1  0  1  0  //1,2,4  
//  1  0  1  1  0  //1,3,4  
//  0  1  1  1  0  //2,3,4  
//  1  1  0  0  1  //1,2,5  
//  1  0  1  0  1  //1,3,5  
//  0  1  1  0  1  //2,3,5  
//  1  0  0  1  1  //1,4,5  
//  0  1  0  1  1  //2,4,5  
//  0  0  1  1  1  //3,4,5 
  public static void main(String[] args) {
    Copy_2_of_StatisAnyThree s = new Copy_2_of_StatisAnyThree();
    s.printAnyThree();  
  }
  
  /**
   *
   */
  public void printAnyThree(){
    int[] num = new int[]{1,2,3,4,5,6};
    print(combine(num,3));
  }
  /**
   * 從n個(gè)數(shù)字中選擇m個(gè)數(shù)字
   * @param a
   * @param m
   * @return
   */
  public List combine(int[] a,int m){
    int n = a.length;
    if(m>n){
      throw new OurException("錯(cuò)誤!數(shù)組a中只有"+n+"個(gè)元素。"+m+"大于"+2+"!!!");
    }
    
    List result = new ArrayList();
    
    int[] bs = new int[n];
    for(int i=0;i<n;i++){
      bs[i]=0;
    }
    //初始化
    for(int i=0;i<m;i++){
      bs[i]=1;
    }
    boolean flag = true;
    boolean tempFlag = false;
    int pos = 0;
    int sum = 0;
    //首先找到第一個(gè)10組合,然后變成01,同時(shí)將左邊所有的1移動(dòng)到數(shù)組的最左邊
    do{
      sum = 0;
      pos = 0;
      tempFlag = true;
      result.add(print(bs,a,m));
      
      for(int i=0;i<n-1;i++){
        if(bs[i]==1 && bs[i+1]==0 ){
          bs[i]=0;
          bs[i+1]=1;
          pos = i;
          break;
        }
      }
      //將左邊的1全部移動(dòng)到數(shù)組的最左邊
      
      for(int i=0;i<pos;i++){
        if(bs[i]==1){
          sum++;
        }
      }
      for(int i=0;i<pos;i++){
        if(i<sum){
          bs[i]=1;
        }else{
          bs[i]=0;
        }
      }
      
      //檢查是否所有的1都移動(dòng)到了最右邊
      for(int i= n-m;i<n;i++){
        if(bs[i]==0){
          tempFlag = false;
          break;
        }
      }
      if(tempFlag==false){
        flag = true;
      }else{
        flag = false;
      }
      
    }while(flag);
    result.add(print(bs,a,m));
    
    return result;
  }
  
  private int[] print(int[] bs,int[] a,int m){
    int[] result = new int[m];
    int pos= 0;
    for(int i=0;i<bs.length;i++){
      if(bs[i]==1){
        result[pos]=a[i];
        pos++;
      }
    }
    return result ;
  }
  
  private void print(List l){
    for(int i=0;i<l.size();i++){
      int[] a = (int[])l.get(i);
      for(int j=0;j<a.length;j++){
        System.out.print(a[j]+"/t");
      }
      System.out.println();
    }
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://blog.csdn.net/wmj2003/article/details/3678941

延伸 · 閱讀

精彩推薦
  • Java教程Spring Cloud Gateway 如何修改HTTP響應(yīng)信息

    Spring Cloud Gateway 如何修改HTTP響應(yīng)信息

    這篇文章主要介紹了Spring Cloud Gateway 修改HTTP響應(yīng)信息的方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教...

    帷幄庸者13712021-10-13
  • Java教程淺談java 中equals和==的區(qū)別

    淺談java 中equals和==的區(qū)別

    這篇文章主要介紹了java 中equals和==的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小...

    獨(dú)特潤許多人5982021-07-21
  • Java教程二進(jìn)制中1的個(gè)數(shù)

    二進(jìn)制中1的個(gè)數(shù)

    這篇文章介紹了二進(jìn)制中1的個(gè)數(shù),有需要的朋友可以參考一下 ...

    java之家2662019-10-15
  • Java教程Spring 6.0 將停止支持 Freemarker 和 JSP

    Spring 6.0 將停止支持 Freemarker 和 JSP

    Spring Framework 6.0 第一個(gè)里程碑版本已經(jīng)發(fā)布,目前已經(jīng)可以從Spring Repo獲取。這里有一些新變更我們可以提前了解一下。...

    碼農(nóng)小胖哥12642021-12-31
  • Java教程淺談sql_@SelectProvider及使用注意說明

    淺談sql_@SelectProvider及使用注意說明

    這篇文章主要介紹了sql_@SelectProvider及使用注意說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教...

    icecoola_6892021-11-04
  • Java教程Java開發(fā)常見異常及解決辦法詳解

    Java開發(fā)常見異常及解決辦法詳解

    這篇文章主要介紹了java程序常見異常及處理匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考...

    cutercorley12252021-12-18
  • Java教程mybatis批量新增、刪除、查詢和修改方式

    mybatis批量新增、刪除、查詢和修改方式

    這篇文章主要介紹了mybatis批量新增、刪除、查詢和修改方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教...

    xuforeverlove7492022-01-24
  • Java教程mybatis調(diào)用存儲過程的實(shí)例代碼

    mybatis調(diào)用存儲過程的實(shí)例代碼

    這篇文章主要介紹了mybatis調(diào)用存儲過程的實(shí)例,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下...

    動(dòng)力節(jié)點(diǎn)11732021-01-25
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久人人爽人人爽人人片av不 | 婷婷综合激情 | 国产视频黄在线观看 | www.xxx日韩| 日韩欧美在线观看 | 精品无人乱码一区二区三区 | 欧美日本精品 | 国产免费av网站 | 欧美电影一区 | 亚洲色综合 | 成人自拍视频 | 成人午夜精品一区二区三区 | 日本成人片网站 | 国产精品久久久久久吹潮 | 日本精品一区二区三区视频 | 成年人免费观看在线视频 | 久久久久国产精品 | 国产精品一区二区在线观看 | 亚洲欧美视频 | 久久丁香 | 国产精品久久久999 一区二区三区视频免费在线观看 | av短片在线观看 | 不卡一区二区av | 蜜桃国精产品二三三区视频 | 免费看黄色一级大片 | 国产在线中文字幕 | 国产妇女乱码一区二区三区 | 欧美成人精品 | 日韩欧美中文字幕一区二区三区 | 亚洲精品视频在线看 | 成年人视频免费在线看 | 午夜视频 | www午夜视频 | 欧美激情高清 | 欧美黄色影院 | 精品国产乱码久久久久久1区2区 | 亚洲欧美另类久久久精品2019 | 欧美三级电影在线播放 | 国产精品久久久久久久久久久久久 | 久久国产区| 爱干在线 |