`
Hello-Java
  • 浏览: 27684 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

组合排序

阅读更多
package test1;

public class SortPro {
	
	/**
	 * 题目如下:用1、2、2、3、4、5这六个数字,
	 * 用java写一个main函数,打印出所有不同的排列,
	 * 如:512234、412345等,
	 * 要求:"4"不能在第三位,"3"与"5"不能相连
	 */
	//kk表示组合数
	static int kk=0;
	
	//array:传入的字符数组
	//n:表示字符数组的长度
	//k:参数
	 private void zuhe(char[] array, int n, int k) {
	  if (n == k) {
		   if(array[2]!='4'){//第三个位置不能出现4
		    String str = new String(array);
		    if(str.indexOf("53")<0&&str.indexOf("35")<0){//3,5不能连续出现
		    System.out.println(str);
		     ++kk;
		    }
		   }
	  } else {
		   for (int i = k; i < n; i++) {
			//System.out.println("k:"+k);
		    swap(array, k, i);
		    zuhe(array, n, k + 1);
		    swap(array, i, k);  
		   }
	  }
	 }
	 
	 /**功能:数组中下标为x的值与下标为y的值进行互换
	  * @param a:array
	  * @param x:index1
	  * @param y:index2
	  */
	 private void swap(char[] a, int x, int y) {
	  char temp = a[x];
	  a[x] = a[y];
	  a[y] = temp;
	 }
	
	
	public static void main(String[] args) {
		
		  //这里是要用到的所有数组成的一个字符串,其它字符同样适用
		  String s = "122345";
		  char[] c = s.toCharArray();
		  new SortPro().zuhe(c,c.length,0);
		  System.out.println("可能的组合数:"+kk);
		
	}
}

 

分享到:
评论

相关推荐

    多种排序(快排,堆排序,组合排序,冒泡等)MFC

    在这个主题中,我们将深入探讨MFC如何支持不同类型的排序算法,包括快速排序、堆排序、组合排序以及冒泡排序。 **快速排序(Quick Sort)** 快速排序是一种基于分治策略的高效排序算法,由C.A.R. Hoare在1960年提出...

    按照百十个位分拆链表,然后组合排序

    ### 按照百十个位分拆链表,然后组合排序 #### 背景介绍 本篇文章将探讨一种基于C语言实现的特殊排序方法——按照数字的个、十、百位来对链表中的元素进行分组和排序。这种方法在特定场景下能够有效地对一组较小...

    单因子组合排序分析(量化因子回测代码)

    单因子组合排序分析(量化投资因子回测)方法 用于检验某个异象/量化因子是否有效的 最常用的方法是投资组合分析法(Portfolio sort analysis), 该方法被广泛应用于学界和业界。 根据某个因子对股票进行排序分组,...

    List&lt;map&gt;多字段组合排序

    List,List, Object&gt;&gt;,多字段组合排序。提供一个简易的思路,如果需要进行参考。

    组合排序文档

    组合排序组合排序文档.xlsm

    快速排序和直接插入排序的组合

    在实现这种组合排序算法时,需要注意以下几点: 1. 选择合适的分界点,以确保快速排序的分区尽可能平衡,避免最坏情况的发生。 2. 在快速排序后,确定直接插入排序的起始点,这通常是快速排序的临界点或最后一个元素...

    经典 算法思想 穷举法 高精度 动态规划 回溯 贪心 排列组合 排序

    本资源包聚焦于几种常见的算法策略,包括穷举法、高精度计算、动态规划、回溯、贪心算法、排列组合以及排序。下面将逐一详细阐述这些算法思想及其应用。 1. **穷举法**:穷举法,也称为全搜索法,是一种通过尝试...

    运营标题关键词组合排序

    需要拼接产品名、属性组合成标题。要求第一列要打乱,第二列原序排,尽量不要视觉上看起来邻近两行的关键词雷同太多。 做成了GUI界面。三个输入框,可以选择输入2列关键词,或者3列关键词。最后一列(如果是两列,即...

    php组合排序简单实现方法

    今天被一个组合排序纠结了一晚上,可能是开始没转过弯,所以没想到用二个栈。用了二个栈就很简单的完成了需求效果 组合排序想象图 为了完成这个效果图,可纠结死我了,先用sql组合查询,结果是组合了,但是效果达不...

    汉字和数字混合排序

    在计算机科学领域,汉字和数字混合排序是一项挑战性任务,特别是在处理中文文本数据时。由于汉字与数字在数据结构和编码上的本质差异,混合排序需要特定的算法和技术来实现。以下将详细介绍汉字和数字混合排序的相关...

    文件按照window 的排序规则-Java实现

    5. **组合排序**: 要同时按多个标准排序(如先按名称,再按日期),可以使用`Comparator.comparing()`函数链式调用,配合Lambda表达式: ```java Arrays.sort(files, Comparator.comparing(File::getName)....

    Java 字母数字字符串 混合排序(绝对超值管用)

    List&lt;String&gt; location=new ArrayList(); 一行代码轻松搞定混合排序问题 Collections.sort(location, new SortUtils(true));

    VBA排序的十种算法

    组合排序是改进版的冒泡排序,它使用了更大的步长来减少不必要的比较,从而提高效率。 8. **希尔排序 (Shell Sort)**: 希尔排序是插入排序的优化版本,通过设置间隔序列来减少元素交换次数,提高排序速度。 9. **...

    数组排序和合并为字符串

    如何将数组排序后,以字符串的形式输出,Arrays.sort(a),Arrays.toString

    VBA排序的十种算法.docx

    组合排序是一种改进的冒泡排序算法,通过增大比较的间隔来减少比较次数。 ### 8. 希尔排序(Shell Sort) 希尔排序是一种基于插入排序的算法,通过先对整个待排序的记录序列进行分组,每组采用插入排序算法,然后再...

    c语言二维数组冒泡排序

    如果需要根据其他列进行排序,或者实现完全的二维数组排序(比如按照行和列的组合排序),则需要更复杂的逻辑。例如,你可以先按照第一列排序,然后再对每一行的子序列按照第二列排序,以此类推。这将涉及到嵌套排序...

Global site tag (gtag.js) - Google Analytics