`
1202
  • 浏览: 2149 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

预览文章: 算法备忘录----对数组全排列

阅读更多
public class ArrayPermutation {
	
	public static void main(String[] args) {
		char[] str = {'a','b','c','d'};
		dopa(str,str.length);
	}
	
	/*
	 * 对数组a的第0到第n-1项进行全排列
	 */
	public static void dopa(char[]a,int n){
		if(n==1){//如果n为1,则无需再进行全排列,此时应该输出数组了
			printArray(a);//打印数组
			//return;
		}else{
			for(int i=0;i<n;i++){//
				dopa(a,n-1);//对数组a的第0到第n-2项进行全排列
//				if(n==2){
//					printArray(a);
//				}
				rotate(a,n);//轮换数组的第n-1项
			}
		}
	}
	
	/**
	 * 轮换数组的第n-1项,为确保数组下次能够正确轮换,需要将数组第0到第n-2项均右移一位,
	 * 然后将第n-1项放到第0位
	 * @param a
	 * @param n
	 */
	private static void rotate(char[] a, int n) {
		char temp = a[n-1];
		for(int i=n-1;i>0;i--){
			a[i]=a[i-1];
		}
		a[0] = temp;
		
	}

	/**
	 * 打印数组
	 * @param a
	 */
	public static void printArray(char[]a){
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]);
		}
		System.out.println();
	}

}
分享到:
评论

相关推荐

    麻雀搜索算法(SSA)文章复现:《融合K-means的多策略改进麻雀搜索算法研究-欧阳城添》 策略为:k-means算法聚类种群+正余弦算法改进加入者策略+自适应策略扰动-SASSA

    麻雀搜索算法(SSA)文章复现:《融合K_means的多策略改进麻雀搜索算法研究_欧阳城添》 策略为:k-means算法聚类种群+正余弦算法改进加入者策略+自适应策略扰动——SASSA。 复现内容包括:改进算法实现、23个基准测试...

    objective-c数组全排列算法

    在处理某些问题时,如生成所有可能的组合或者解决排列组合问题,全排列算法是必不可少的工具。全排列指的是从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排列起来,所有的排列情况就构成了全排列。 ...

    潭浩强《C语言程序设计》 Word版

    算法&lt;/span&gt;&lt;span lang="EN-US" style="DISPLAY: none; FONT-SIZE: 10.5pt; FONT-FAMILY: &quot;Times New Roman&quot;; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso...

    星雀算法NOA-Kmean-Transformer-LSTM负荷预测【含Matlab源码 6812期】.zip

    如需其他服务,可私信博主或扫描博主博客文章底部QQ名片; 4.1 CSDN博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 智能优化算法优化Kmeans-Transformer-lstm分类预测系列程序...

    matlab经典算法的程序-生成全排列矩阵.zip

    在MATLAB编程环境中,生成全排列矩阵是一项常见的任务,尤其在处理组合数学、数据分析或算法设计时。全排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排列的所有可能的方式。当m=n时,即为全排列。本...

    wK算法算法处理RADARSAT-1数据_share

    同时,提供了链接到一个博客文章,其中可能包含了更多关于使用wK算法处理后的成像效果和实现细节。 **标签解析:** 1. **wK算法** - 这是处理遥感数据的核心技术,可能是一种专有的、针对SAR数据的处理方法,但...

    密码管理专家V1.0.2.0

    简介: 本软件为开源软件。软件所有数据均保存在本地,安全可靠。 功能: ... ...6、软件提示更新功能,让您能实时掌握软件的更新动态。...8、回收站功能,您再也不必因为误删数据而导致...3、更换为更加安全的数据加密算法。

    基于改进的遗传算法求解TSP代码

    %-------Population:种群,nPopulation*nCity矩阵,每行由{1,2,...,nCity}某一个全排列构成; %-------generation:算法终止条件一,迭代代数; %-------nR:算法终止条件二,最短路径值连续nR代不变; %-------R:...

    改进的遗传算法求解TSP

    %-------Population:种群,nPopulation*nCity矩阵,每行由{1,2,...,nCity}某一个全排列构成; %-------generation:算法终止条件一,迭代代数; %-------nR:算法终止条件二,最短路径值连续nR代不变; %-------R:...

    彻底理解全排列算法

    全排列算法: 比如字符串abc,全排列结果为abc,acb,bac,bca,cba,cab。

    全排列算法解析(完整版)

    全排列算法广泛应用于程序设计中,尤其是在需要穷举所有可能性的场合,比如组合数学、游戏设计、密码学等领域。 在C或C++中实现全排列算法,主要的思想是递归。基本步骤是首先固定第一个元素,然后对剩余的n-1个...

    全排列算法部分算法需要自己优化修改

    全排列算法是计算机科学中一个基础且重要的问题,它涉及到数组或序列的所有可能的线性排列方式。在处理这个问题时,我们通常会采用递归或迭代的方式来实现。下面将详细介绍全排列算法及其优化方法。 全排列算法的...

    数据结构算法与应用--C++语言描述(代码与习题答案)

    在《数据结构算法与应用--C++语言描述》这本书中,作者深入浅出地介绍了各种基本和高级的数据结构及其对应的算法,并提供了详细的C++实现。以下是基于这个主题的详细知识点讲解: 1. **数组**:数组是最基础的数据...

    Introduction to Algorithms, 3rd edtion

    《算法导论》是一本广泛使用的计算机科学教材,涵盖了算法设计与分析的基础知识及其在计算领域的应用。本书不仅适合本科生和研究生作为教材使用,也适用于专业人士作为参考书籍。 #### 三、主要内容概览 ##### 第...

    由数据范围反推算法复杂度以及算法内容

    ### 由数据范围反推算法复杂度及其应用 在计算机科学与编程竞赛中,了解算法的时间复杂度对于选择合适的算法解决特定问题至关重要。通过题目给出的数据规模(即输入数据的大小),我们可以反向推导出适合该问题的...

    全排列算法 全排列算法 (c#版)

    本篇文章将深入探讨全排列算法的原理、C#实现方法以及相关的应用。 全排列算法的基本思想是回溯法,通过递归或迭代的方式,将序列中的每个元素放在序列的第一个位置,然后对剩下的元素进行递归操作,直到所有元素都...

    数据结构与算法分析(Java版)

    - 通过具体的Java代码示例加深对数组的理解。 - **第3章:简单排序算法** - 介绍几种基本的排序算法,如冒泡排序、选择排序和插入排序。 - 比较这些算法的时间复杂度,并通过Java实例展示其应用。 ##### 第二...

    【中科院2区】布谷鸟算法CS优化CNN-BiGRU-Attention风电预测【含Matlab源码 8310期】.zip

    如需其他服务,可私信博主或扫描博主博客文章底部QQ名片; 4.1 CSDN博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 智能优化算法优化-CNN-BiGRU-Attention风电预测系列程序定制...

    高通camera美颜算法接入

    整个流程的总结如下: ...-&gt;APP 层调用 Camera.open() -&gt;Camera.java 调用 JNI native_setup() -&gt;JNI 层调用 android_hardware_Camera_native_setup -&gt; HAL 客户端(Camera.cpp)调用 connect 与服务端(CameraService.cpp...

    matlab:具有优化外部存档的自适应差分进化算法(JADE)----应用于单目标优化

    该算法是基于文献--JADE: Adaptive Differential Evolution with Optional External Archive 想更加仔细了解则去下载这篇文章了解! 使用步骤: 1.在运行主程序JADE_RunTest.m 2.在命令窗口依次输入每个测试函数...

Global site tag (gtag.js) - Google Analytics