java算法字符组合排序
为帮助同学们学好java算法,yjbys小编为大家分享最新java算法——字符组合排序试题和答案如下:
题目:
用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
不是特别难的题目,暴力算和用图论算(深度遍历)都可以,结果是198.图论的.话就是构造无向图,然后深度优先递归。
package hic;
import ator;
import Set;
public class CharSequence {
private String[] c = {"1","2","2","3","4","5"};
private int n = th;
private boolean[] visited = new boolean[n];
private int[][] g = new int[n][n];
private TreeSetts = new TreeSet();
private String result = "";
public CharSequence(){
for(int i=0; i
for(int j=0; j
if(i == j) g[i][j] = 0;
else g[i][j] = 1;
}
}
g[3][5] = 0;
g[5][3] = 0;
}
public void depthFirst(int index){
visited[index] = true;
result += c[index];
if(th() == n){
(result);
result = tring(0,th()-1);
visited[index] = false;
}
else{
for(int i=0; i
if(!visited[i] && g[index][i] == 1){
depthFirst(i);
}else continue;
}
result = tring(0,th()-1);
visited[index] = false;
}
}
public void graphicGet(){
for(int i=0; i
depthFirst(i);
}
int count = 0;
t("图论的结果:");
Iteratorit = ator();
while(ext()){
String tmp = ();
if(ains("35")) continue;
if(ains("53")) continue;
if(At(3) == '4') continue;
tln(tmp);
count++;
}
tln("共计:"+count+"个");
}
public void bruteForce(){
tln("暴力搜的结果:");
int count = 0;
for(int i = 122345; i<543222; i++){
String tmp = ""+i;
if(At(3) == '4') continue;
if(ains("35")) continue;
if(ains("53")) continue;
if(ains("5") && ains("4") && ains("3") && ains("1"))
{
int index = xOf("2");
if(index == -1) continue;
if(index == th()-1) continue;
if(tring(index+1)ains("2")){
tln(tmp);
count++;
}
}
}
t("共计:"+count+"个");
}
public void recrusive(){
}
public static void main(String[] args) {
CharSequence cs = new CharSequence();
//图论的方法
hicGet();
//暴力搜索
eForce();
}
}
相關文章
-
Java字符串排序中文和数字的方法
在Java中,排序需要复写的是 equals 方法 和 Comparable 接口 的public int compareTo(T o);。下面是小编为大家带来的Java字符串排序中文和数字的方法,欢迎阅读。 方法步骤:1. 使用正则表达式来判断数字,多个连续的数 -
Java 2.1 java基本类型的转换和运算符
想画出萌萌哒的妹纸吗!想画出美腻的妹纸吗!想让自己变成漫画家吗!然后想就看萌萌哒的猫子的教程吧!(ง •̀_•́)งwww主要材料:画纸 1所需工具:橡皮 1铅笔 1圆珠笔 1制作步骤:第1步:先展示下美腻的妹纸吧!第2步:先画 -
Java排序算法
一、指导思想以学习贯彻《国家中长期教育改革和发展规划纲要》和全国教育工作会议精神为主线,<莲山课 件>以学校五年发展规划为支撑,以教研室工作要点为指南,以精细常规教学为基础,不断提高教师业务素质及个人素养,切实促 -
java算法实现排列组合的方法介绍
一.利用二进制状态法求排列组合,此种方法比较容易懂,但是运行效率不高,小数据排列组合可以使用代码如下:import ys;//利用二进制算法进行全排列//count1:170187//count2:291656public class test {public static void ma -
常用Java排序算法详解
Java是一门面向对象编程语言,本文主要介绍了java的七种常见排序算法的实现,具有很好的参考价值。下面就跟着小编一起来看下吧。 一、选择排序(SelectSort)基本原理:对于给定的一组记录,经过第一轮比较后得到最小的记录 -
Java常用的7大排序算法
Java是一门面向对象编程语言,以下总结了下java中常用的七大排序算法,希望对大家有帮助! 1.插入排序算法插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应 -
Java常用的五大排序算法
排序算法的使用可以让我们更方便的进行排序,下面是小编给大家提供的Java常用的五大排序算法大家可以参考阅读,更多详情请关注应届毕业生考试网。 1、Java排序算法之选择排序选择排序的基本思想是遍历数组的过程中,以 -
JAVA语言的常见排序算法
导语:每种排序算法都有它自己的优点及局限性,适用于不同的要求范围,在选择时应根据需要适当选用,甚至可将多种算法结合起来使用,效率才会更高。下面就由小编为大家介绍一下JAVA语言的常见排序算法,欢迎大家阅读! 1 排序 -
JAVA程序语言中的运算符
运算符是一种特殊的符号,主要用于数学函数,一些类型的赋值语句和逻辑比较方面,JAVA中提供了丰富的运算符,下面我们就来看看都有哪些吧! 1、赋值运算符赋值运算符就是所谓的”=“ 2、算数运算符就是所谓的加减乘除还 -
计算机二级JAVA考试构建JAVA程序2017
很多人一见到说要编程就以为很难,其实只有一点一滴学知识点也不难,下面是小编整理的计算机二级JAVA考试构建JAVA程序介绍,欢迎阅读! 第一个java applicationjava程序分为java application(java 应用程序)和java applet