`

全排序算法 java

阅读更多
 import java.util.ArrayList;  
 import java.util.List;  

 public class RangeNumber  
 {  
     private char[] numbers;   //输入的字符数组  
     private List<String> list;//返回的全排列字符串数组  
     private String regex;     //过滤相邻字符串的正则式  
       

       
     public RangeNumber(char[] numbers,char[] notNear)  
     {  
         this.numbers = numbers;  
         StringBuilder sb = new StringBuilder();  
         sb.append("\\d*");  
         for(int i=0;i<notNear.length;i++)  
         {  
             sb.append("[");  
             sb.append(String.valueOf(notNear));  
             sb.append("]");  
         }  
         sb.append("\\d*");  
         regex = sb.toString();  
         System.out.println(regex);  
     }  
       
     public List range()  
     {  
         list = new ArrayList<String>();  
         int m,n;   
         m = 0;  
         n = numbers.length;  
         permutation(m,n);  
         return list;  
     }  
       
     /** 
      * 后补法全排算法 
      * @param m 数组游标 
      * @param n 字符串的长度 
      */  
     private void permutation(int m, int n)  
     {  
         int i;  
         char t;  
         if (m<n-1)   
         {   
             permutation(m+1, n);  
             for (i=m+1;i<n;i++) {  
                 t=numbers[m];  
                 numbers[m]=numbers[i];  
                 numbers[i]=t;  
                 permutation(m+1, n);  
                 t=numbers[m];  
                 numbers[m]=numbers[i];  
                 numbers[i]=t;  
             }  
         }  
         else  
         {  
             String value = String.valueOf(numbers);  
             if(!value.matches(regex))  
             {  
                 list.add(value);  
             }  
         }  
     }  
}  
 
分享到:
评论

相关推荐

    常用排序算法java演示

    本文将深入探讨标题"常用排序算法java演示"中涉及的知识点,包括排序算法的原理、Java实现方式以及其在实际应用中的图形演示。 首先,让我们逐一了解几种常见的排序算法: 1. **冒泡排序(Bubble Sort)**:这是一...

    堆排序算法 java

    堆排序算法 java

    各种排序算法java实现

    在Java编程语言中,排序算法是数据结构与算法学习中的重要组成部分。这些算法用于将一组数值按照特定顺序(通常是升序或降序)排列。在提供的文件中,我们可以看到有四种经典的排序算法的Java实现:插入排序、冒泡...

    各种排序算法比较(java实现)

    本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合Java语言的实现进行解析。 1. **合并排序(Merge Sort)**: 合并排序是一种基于分治策略的排序算法...

    各种排序算法java源代码

    本资源提供了Java语言实现的五种经典排序算法:冒泡排序、快速排序、插入排序、选择排序以及测试程序。下面将详细介绍这四种排序算法的原理、特点以及Java实现的关键点。 1. **冒泡排序**: 冒泡排序是一种简单...

    插入排序算法java代码

    插入排序算法java代码,望对大家有帮助

    常见的七大排序算法Java实现.zip

    本压缩包"常见的七大排序算法Java实现.zip"包含了七种经典的排序算法在Java语言中的实现。尽管文件列表中并未明确列出每种排序算法的名称,但根据常规,这七大排序算法可能包括冒泡排序、插入排序、选择排序、快速...

    堆排序算法(java)

    java的堆排序算法实现程序,含测试,可直接运行。java的堆排序算法实现程序,含测试,可直接运行。

    快速排序算法java代码

    "快速排序算法java代码" 快速排序算法是由Tony Hoare在1960年提出的一种排序算法,它的平均时间复杂度为O(n log n),是目前最快的排序算法之一。下面我们将详细地讲解快速排序算法的java代码实现。 快速排序算法的...

    各类排序算法java的实现.CHM

    各类排序算法java的实现.CHM 各类排序算法java的实现.CHM

    lz4压缩算法java实现-LZ4-极快的压缩算法,排序算法数据结构 最快的排序算法

    LZ4压缩算法java实现 LZ4压缩算法是lossless压缩算法,提供了高达500 MB/s每个核心的压缩速度,且可以根据多核CPU进行扩展。它具有极快的解压速度,速度可达多GB/s每个核心,通常达到多核系统中的RAM速度限制。速度...

    三种线性排序算法Java实现

    在计算机科学领域,排序算法是数据结构中至关重要的一部分,它用于对一组数据进行有序排列。本资源提供的Java实现包括了三种线性排序算法:桶排序(Bucket Sort)、基数排序(Radix Sort)和计数排序(Counting Sort...

    多种排序查找算法java实现

    这个压缩包文件“多种排序查找算法java实现”显然包含了用Java语言编写的多种经典排序和查找算法的源代码。下面,我们将详细讨论这些算法及其在实际应用中的价值。 首先,我们来看排序算法: 1. **选择排序**:这...

    基于java语言十大经典排序算法

    **基于Java语言十大经典排序算法** 排序算法是计算机科学中不可或缺的一部分,特别是在数据处理和算法设计领域。在Java编程中,理解并掌握各种排序算法能够帮助开发者提高代码效率,优化性能。以下是Java语言中十大...

    排序算法JAVA实现,eclipse+txt

    Java作为一种广泛应用的编程语言,提供了丰富的工具和技术来实现各种排序算法。本资料包包含了一个基于Java的排序算法实现,以及Eclipse工程文件,方便开发者在Eclipse集成开发环境中进行调试和学习。 1. **冒泡...

    IT面试笔试-各种排序算法Java实现

    【IT面试笔试中的排序算法Java实现】 在IT面试和笔试中,掌握各种排序算法的实现是必不可少的技能。本文将详细介绍几种经典的排序算法,并提供Java语言的实现代码,包括冒泡排序、插入排序、选择排序和快速排序。...

    Java排序算法实现

    Java排序算法实现 Java排序算法实现 Java排序算法实现

Global site tag (gtag.js) - Google Analytics