数组全排列 递归
package algorithm.test;
/**
* 数组全排列
* @author barney
*
*/
public class Permutation {
public static void perm(int[] num, int i) {
if(i < num.length - 1) {
for(int j = i; j <= num.length - 1; j++) {
int tmp = num[j];
// 旋转该区段最右边数字至最左边
for(int k = j; k > i; k--)
num[k] = num[k-1];
num[i] = tmp;
perm(num, i+1);
// 还原
for(int k = i; k < j; k++)
num[k] = num[k+1];
num[j] = tmp;
}
}
else { // 显示此次排列
for(int j = 1; j <= num.length - 1; j++)
System.out.print(num[j] + " ");
System.out.println();
}
}
public static void main(String[] args) {
int[] num = new int[5+1];
for(int i = 1; i <= num.length - 1; i++)
num[i] = i;
perm(num, 1);
}
}
洗牌
package algorithm.test;
//随机洗牌算法
public class ShuffleCard {
public static void main(String args[]) {
final int N = 52;
int[] poker = new int[N + 1];
// 初始化阵列
for(int i = 1; i <= N; i++)
poker[i] = i;
// 洗牌
for(int i = 1; i <= N; i++) {
int j = (int) (Math.random() * N);
if(j == 0)
j = 1;
int tmp = poker[i];
poker[i] = poker[j];
poker[j] = tmp;
}
for(int i = 1; i <= N; i++) {
// 判断花色
switch((poker[i]-1) / 13) {
case 0:
System.out.print("桃"); break;
case 1:
System.out.print("心"); break;
case 2:
System.out.print("砖"); break;
case 3:
System.out.print("梅"); break;
}
// 扑克牌数字
int remain = poker[i] % 13;
switch(remain) {
case 0:
System.out.print("K "); break;
case 12:
System.out.print("Q "); break;
case 11:
System.out.print("J "); break;
default:
System.out.print(remain + " "); break;
}
if(i % 13 == 0)
System.out.println("");
}
}
}
分享到:
相关推荐
常用算法搜集最新修正-1.rar 包含算法有如下: 1.RAR 中含 FLOYD算法 动态规划 分冶算法 概率算法 模拟退火算法 MATLAB常用数学建摸算法 2.RAR 中含 神经网络 搜索算法 贪婪算法 遗传算法 组合算法 及网上...
常用算法搜集最新修正-2.rar 包含算法有如下: 1.RAR 中含 FLOYD算法 动态规划 分冶算法 概率算法 模拟退火算法 MATLAB常用数学建摸算法 2.RAR 中含 神经网络 搜索算法 贪婪算法 遗传算法 组合算法 及网上...
例如,文件"常用算法设计方法+搜集.doc"可能包含了各种算法的设计思想和具体实现,而"CodePub.Com说明.txt"可能是对某些代码库或编程资源的介绍,可以帮助你进一步理解和应用这些算法。结合这两个资源,你可以构建...
2009/09/28 15:55 5,037 2008网宿.txt ...2009/10/05 09:45 584,607 部分IT公司笔试算法题(转) - IT类(软硬件)笔试题目及笔经精华资料专版 - 笔试题目、笔经大全 - 算法,笔试, 应届生求职招聘论坛 应届生BBS.mht
本书是用C++描述的最新版(第四版)常用算法程序集。(清华大学 徐士良 ) 针对工程中常用且行之有效的算法而编写的,并且根据算法的分类以及使用特点作了精心的组织和安排。书中除收集了传统的算法外,还根据作者...
"算法程序.rar (常用算法)"这个压缩包文件包含了一些常见的算法实现,这些算法在计算机科学和软件工程中具有广泛的应用。让我们逐一探讨这些算法的原理、用途及其重要性。 1. **平衡搜索树**: 平衡搜索树是一种...
根据给定的信息,我们可以深入探讨算法的基本概念以及几种常见的算法设计方法。 ### 算法的基本定义 算法是指一系列明确的指令集,用于解决特定问题。它可以接受输入数据,并在有限的时间内产生所需的输出结果。...
在计算机科学中,算法设计是解决问题的关键步骤,它涉及到如何逻辑清晰地表述一系列操作,以解决特定问题。本文主要探讨几种常见的算法设计方法,包括迭代法、穷举搜索法,以及它们在实际问题中的应用。 1. 迭代法...
《常用算法程序集(C语言描述)》是著名计算机科学家徐士良先生的作品,它包含了大量经典的算法实现,旨在帮助读者深入理解并掌握各种常见算法。这个压缩包中收集的源代码是这些算法的直接体现,是学习和研究C语言...
"VB常用算法代码"这个压缩包文件,根据其标题和描述,包含了数值算法、线性规划和数据统计等方面的VB实现,这些都是编程中非常关键的领域。下面我们将深入探讨这些知识点。 1. **数值算法**: 数值算法是计算机...
这份50页的干货文档涵盖了多个常用的推荐算法,旨在帮助读者深入理解和掌握这些算法的原理与应用。以下是对这些算法的详细介绍: 1. **协同过滤**:协同过滤是最为常见的推荐系统方法,分为用户-用户协同过滤和物品...
根据提供的文档信息,我们可以深入探讨现代计算机中常用的数据结构与算法相关的重要知识点。这份文档主要聚焦于算法的基础、排序算法以及线性时间内的排序方法等内容。下面将详细展开这些核心概念。 ### 数据结构与...
### 常用算法设计方法 #### 算法的重要性 算法是计算机科学的核心组成部分之一,它不仅对于编程人员来说至关重要,而且对于任何涉及到计算机解决问题的过程都是必不可少的。一个好的算法能够极大地提高程序的效率...
NET Cryptography 命名空间概览.doc RC2加密算法在C#的应用----完善版.doc sha1加密.doc 几种常见的无线数据加密的方法.doc 轻松加密ASP.NET 2.0 Web程序配置信息.doc
这个名为"数学建模常用算法源代码"的压缩包很可能是为了帮助数学建模者快速理解和应用各种常用算法。下面,我们将深入探讨一些可能包含在其中的算法及其重要性。 1. **线性规划**:线性规划是一种优化技术,用于...
本书主要作为算法入门的书,所收集的内容不会很难,并且内容较为精简浓缩。 学习时你必需同时使用编译器实验,学明白一个算法点必需再多做两三个练习, 因为,学明白一个算法,和会运用这个算法写出正确的程序,还有...
标题中的"C语言编写的数学常用算法(经典)"指的是使用C编程语言实现的一系列经典数学算法。这些算法在计算机科学和编程领域中具有广泛的应用,包括数值计算、数据分析、图形处理等多个方面。C语言因其高效、灵活和...