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基本型別的轉換和運算子
導語:Java是一門面向物件程式語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。下面我們來看看Java 2.1 java基本型別的轉換和運算子,希望對大 -
Java排序演算法
一、指導思想以學習貫徹《國家中長期教育改革和發展規劃綱要》和全國教育工作會議精神為主線,<蓮山課 件>以學校五年發展規劃為支撐,以教研室工作要點為指南,以精細常規教學為基礎,不斷提高教師業務素質及個人素養,切實促 -
java演算法實現排列組合的方法介紹
本文目錄試用期工作總結模板財務試用期工作總結範文工程預結算試用期半年工作總結銷售部試用期轉正個人工作總結在xxxx工作一年時間了,在這一年裡,在領導的指導、關心培養下,在同事的支援幫助、密切配合下,我不斷加強思想 -
常用Java排序演算法詳解
Java是一門面向物件程式語言,本文主要介紹了java的七種常見排序演算法的實現,具有很好的參考價值。下面就跟著小編一起來看下吧。 一、選擇排序(SelectSort)基本原理:對於給定的一組記錄,經過第一輪比較後得到最小的記錄 -
Java常用的7大排序演算法
新學期,學前班保育員應樹立一日生活都是教育的觀念,將保育工作滲透到幼兒一日生活中,下面是本站小編收集整理的學前班保育員個人計劃,歡迎閱讀。學前班保育員個人計劃篇一一、班級情況分析本學期主要我來負責學前班的工 -
Java常用的五大排序演算法
微博上轉的美食,吃貨看看主要材料:麵條 適量所需工具:調料 適量製作步驟:第1步:手機黨點圖看吧第2步:手機黨點圖看吧,這個肯定很好吃,姐姐我推薦大家做這個第3步:重口味哦 ,辣辣~手機黨點圖看吧,第4步:這個需要要醬,麵條好不好 -
JAVA語言的常見排序演算法
導語:每種排序演算法都有它自己的優點及侷限性,適用於不同的要求範圍,在選擇時應根據需要適當選用,甚至可將多種演算法結合起來使用,效率才會更高。下面就由小編為大家介紹一下JAVA語言的常見排序演算法,歡迎大家閱讀! 1 排序 -
JAVA程式語言中的運算子
運算子是一種特殊的符號,主要用於數學函式,一些型別的賦值語句和邏輯比較方面,JAVA中提供了豐富的運算子,下面我們就來看看都有哪些吧! 1、賦值運算子賦值運算子就是所謂的”=“ 2、算數運算子就是所謂的加減乘除還 -
計算機二級JAVA考試構建JAVA程式2017
很多人一見到說要程式設計就以為很難,其實只有一點一滴學知識點也不難,下面是小編整理的計算機二級JAVA考試構建JAVA程式介紹,歡迎閱讀! 第一個java applicationjava程式分為java application(java 應用程式)和java applet