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如何支持不同类型的排序算法,包括快速排序、堆排序、组合排序以及冒泡排序。 **快速排序(Quick Sort)** 快速排序是一种基于分治策略的高效排序算法,由C.A.R. Hoare在1960年提出...
### 按照百十个位分拆链表,然后组合排序 #### 背景介绍 本篇文章将探讨一种基于C语言实现的特殊排序方法——按照数字的个、十、百位来对链表中的元素进行分组和排序。这种方法在特定场景下能够有效地对一组较小...
单因子组合排序分析(量化投资因子回测)方法 用于检验某个异象/量化因子是否有效的 最常用的方法是投资组合分析法(Portfolio sort analysis), 该方法被广泛应用于学界和业界。 根据某个因子对股票进行排序分组,...
List,List, Object>>,多字段组合排序。提供一个简易的思路,如果需要进行参考。
组合排序组合排序文档.xlsm
在实现这种组合排序算法时,需要注意以下几点: 1. 选择合适的分界点,以确保快速排序的分区尽可能平衡,避免最坏情况的发生。 2. 在快速排序后,确定直接插入排序的起始点,这通常是快速排序的临界点或最后一个元素...
本资源包聚焦于几种常见的算法策略,包括穷举法、高精度计算、动态规划、回溯、贪心算法、排列组合以及排序。下面将逐一详细阐述这些算法思想及其应用。 1. **穷举法**:穷举法,也称为全搜索法,是一种通过尝试...
需要拼接产品名、属性组合成标题。要求第一列要打乱,第二列原序排,尽量不要视觉上看起来邻近两行的关键词雷同太多。 做成了GUI界面。三个输入框,可以选择输入2列关键词,或者3列关键词。最后一列(如果是两列,即...
今天被一个组合排序纠结了一晚上,可能是开始没转过弯,所以没想到用二个栈。用了二个栈就很简单的完成了需求效果 组合排序想象图 为了完成这个效果图,可纠结死我了,先用sql组合查询,结果是组合了,但是效果达不...
在计算机科学领域,汉字和数字混合排序是一项挑战性任务,特别是在处理中文文本数据时。由于汉字与数字在数据结构和编码上的本质差异,混合排序需要特定的算法和技术来实现。以下将详细介绍汉字和数字混合排序的相关...
5. **组合排序**: 要同时按多个标准排序(如先按名称,再按日期),可以使用`Comparator.comparing()`函数链式调用,配合Lambda表达式: ```java Arrays.sort(files, Comparator.comparing(File::getName)....
List<String> location=new ArrayList(); 一行代码轻松搞定混合排序问题 Collections.sort(location, new SortUtils(true));
组合排序是改进版的冒泡排序,它使用了更大的步长来减少不必要的比较,从而提高效率。 8. **希尔排序 (Shell Sort)**: 希尔排序是插入排序的优化版本,通过设置间隔序列来减少元素交换次数,提高排序速度。 9. **...
如何将数组排序后,以字符串的形式输出,Arrays.sort(a),Arrays.toString
组合排序是一种改进的冒泡排序算法,通过增大比较的间隔来减少比较次数。 ### 8. 希尔排序(Shell Sort) 希尔排序是一种基于插入排序的算法,通过先对整个待排序的记录序列进行分组,每组采用插入排序算法,然后再...
如果需要根据其他列进行排序,或者实现完全的二维数组排序(比如按照行和列的组合排序),则需要更复杂的逻辑。例如,你可以先按照第一列排序,然后再对每一行的子序列按照第二列排序,以此类推。这将涉及到嵌套排序...