`
- 浏览:
99691 次
- 来自:
...
-
-
packageBeanUtil;
-
importjava.util.ArrayList;
-
importjava.util.List;
-
importcom.work.core.exception.OurException;
-
-
-
publicclassCopy_2_of_StatisAnyThree{
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
publicstaticvoidmain(String[]args){
-
Copy_2_of_StatisAnyThrees=newCopy_2_of_StatisAnyThree();
- s.printAnyThree();
- }
-
-
-
publicvoidprintAnyThree(){
-
int[]num=newint[]{1,2,3,4,5,6};
-
print(combine(num,3));
- }
-
-
-
publicListcombine(int[]a,intm){
-
intn=a.length;
-
if(m>n){
-
thrownewOurException("错误!数组a中只有"+n+"个元素。"+m+"大于"+2+"!!!");
- }
-
Listresult=newArrayList();
-
int[]bs=newint[n];
-
for(inti=0;i<n;i++){
-
bs[i]=0;
- }
-
-
for(inti=0;i<m;i++){
-
bs[i]=1;
- }
-
booleanflag=true;
-
booleantempFlag=false;
-
intpos=0;
-
intsum=0;
-
-
do{
-
sum=0;
-
pos=0;
-
tempFlag=true;
- result.add(print(bs,a,m));
-
for(inti=0;i<n-1;i++){
-
if(bs[i]==1&&bs[i+1]==0){
-
bs[i]=0;
-
bs[i+1]=1;
- pos=i;
-
break;
- }
- }
-
-
for(inti=0;i<pos;i++){
-
if(bs[i]==1){
- sum++;
- }
- }
-
for(inti=0;i<pos;i++){
-
if(i<sum){
-
bs[i]=1;
-
}else{
-
bs[i]=0;
- }
- }
-
-
for(inti=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));
-
returnresult;
- }
-
privateint[]print(int[]bs,int[]a,intm){
-
int[]result=newint[m];
-
intpos=0;
-
for(inti=0;i<bs.length;i++){
-
if(bs[i]==1){
- result[pos]=a[i];
- pos++;
- }
- }
-
returnresult;
- }
-
privatevoidprint(Listl){
-
for(inti=0;i<l.size();i++){
-
int[]a=(int[])l.get(i);
-
for(intj=0;j<a.length;j++){
-
System.out.print(a[j]+"\t");
- }
- System.out.println();
- }
- }
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
下面将详细介绍高效的Java版排列组合算法的实现。 一、排列组合算法的概念 排列组合算法是指从n个元素中选择m个元素的所有可能的组合。例如,从5个元素中选择3个元素的排列组合有10种可能的组合:{1,2,3}、{1,2,4}...
本文将探讨两种不同的Java实现方法,分别基于二进制状态法和递归思想,用于生成排列组合。 首先,我们来看第一种方法:**二进制状态法**。这种方法的核心思想是利用二进制数来表示每个排列,然后通过遍历所有可能的...
在这个Java实现的项目中,我们将探讨两种主要的页面替换算法:FIFO(先进先出)和LRU(最近最少使用)。这两种算法都是为了解决虚拟存储系统中的缓存问题,即如何决定哪些页面应该被替换到磁盘,以便为新的或已修改...
在提供的文件中,我们可以看到有四种经典的排序算法的Java实现:插入排序、冒泡排序、选择排序以及希尔排序。 **插入排序**: 插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据...
本资源提供的Java实现包括了三种线性排序算法:桶排序(Bucket Sort)、基数排序(Radix Sort)和计数排序(Counting Sort)。这三种算法在特定条件下可以达到线性的平均或最好时间复杂度,效率相对较高。 1. **桶...
总之,字典排序求全排列的算法通过Java实现,结合了回溯法和深度优先搜索策略,遵循字典序规则生成所有可能的排列。理解并掌握这种算法有助于提升编程能力和解决复杂问题的能力。在实际应用中,这种算法可用于生成...
4. **Java实现**: - Java中实现BWT,可以使用`Collections.sort()`函数来排序字符数组,实现全排列和排序的过程。 - 为了存储和处理全排列,可以使用`ArrayList`或自定义的`Matrix`类来保存旋转字符串。 - 可以...
在本资源中,我们关注的是"经典算法问题的java实现<一>",这通常涉及到计算机科学中的基础算法,特别是那些用Java编程语言实现的。这些算法是解决各种计算问题的关键,包括排序、搜索、图论、动态规划等。Java作为一...
C语言的实现强调效率和内存管理,而Java的实现则更注重代码的清晰性和可维护性。通过比较两种语言的实现,开发者可以深化对算法本质的理解,同时提升编程技巧。 总的来说,"62种常见算法(JAVA,C实现都有)"是IT...
在计算机科学中,B树(B-tree)是一种自平衡的多路查找树,它的设计目的是为了优化磁盘或网络存储环境下的数据检索效率。B树的主要特点是每个节点可以拥有多个子节点,这与二叉树(最多两个子节点)不同。其核心思想...
《遗传算法在旅行商问题(TSP)中的应用——基于Java实现》 旅行商问题(Traveling Salesman Problem,简称TSP)是一个经典的组合优化问题,它询问的是:给定一个城市列表,一个旅行商如何规划一条路线,使得他能...
本篇文章将详细讲解标题中提到的六种常见排序算法的Java实现。 1. **冒泡排序**:冒泡排序是最基础的排序算法之一,它通过不断交换相邻的逆序元素来逐渐将较大的元素“浮”到数组的前端。在Java中,冒泡排序的基本...
Java作为广泛应用的编程语言,提供了丰富的工具来实现各种排序算法。以下是根据标题和描述中提到的四种排序算法——冒泡排序、快速排序、插入排序和选择排序的详细说明。 **冒泡排序(BuddleSort)**: 冒泡排序是...
总的来说,"排序算法_基于Java实现的排序算法之BubbleSort实现"这个项目提供了学习和实践冒泡排序算法的机会。通过分析和编写这样的代码,不仅可以加深对排序算法的理解,也能提升Java编程技巧。同时,它也提醒我们...
"数据结构与算法java版"这个资源虽然清晰度不高,但内容较为全面,涵盖了数据结构和算法的核心概念。 1. **数据结构**:数据结构是指在计算机中组织和存储数据的方式,它允许我们以高效的方式访问和修改数据。主要...
总的来说,通过Java实现的霍夫曼无损压缩算法,可以有效地压缩文本数据,减少存储空间。配合`binview`这样的工具,可以方便地查看和分析压缩后的数据。在实际应用中,霍夫曼编码常与其他压缩算法结合使用,如LZ77或...
### Rijndael扩展算法及其Java实现 #### 引言 Rijndael算法作为高级加密标准(AES)的基础,在信息安全领域占据着极其重要的地位。它不仅被广泛应用于美国政府、商业、金融以及军事领域,同时也成为了全球范围内...
为了用Java实现贪心算法解决背包问题,我们可以按照以下步骤进行: 1. 定义物品类(Item),包含物品的重量(weight)和价值(value)。 ```java public class Item { int weight; int value; public Item(int ...
#### 排列算法分类 在组合数学中,常见的全排列算法有以下几种: 1. **递归算法** - **原理**:递归算法的基本思想是从n个元素中选择第一个元素,然后对剩下的n-1个元素进行递归求解,直到只剩下一个元素为止。 -...