資源簡介
給出了字典排序求取全排列的算法實現,JAVA

代碼片段和文件信息
/*
?*?To?change?this?license?header?choose?License?Headers?in?Project?Properties.
?*?To?change?this?template?file?choose?Tools?|?Templates
?*?and?open?the?template?in?the?editor.
?*/
import?java.util.Scanner;
/**
?*?功能:?輸入將要求取全排列的數字的個數(不超過10的正整數)并打印全排列。
?*
?*?@author?曲文杰?S314060042
?*/
public?class?DictionarySort?{
????public?static?void?getAllSort(int?n)//字典排序求全排列算法實現
????{
????????int?current_table[];
????????current_table?=?new?int[11];
????????int?i?=?0;
????????for?(i?=?1;?i?<=?n;?i++)?{//生成初始序列
????????????current_table[i]?=?i;
????????}
????????printCurrentTable(current_table?n);//打印起始序列
????????boolean?flag?=?true;//存在后邊的數大于前邊的數的標志位
????????int?temp?=?0;
????????int?i_max?=?1;
????????int?h_max?=?1;
????????while?(flag)?{
????????????flag?=?false;//復位flag
????????????for?(i?=?1;?i?????????????????if?(current_table[i]?????????????????????i_max?=?i?+?1;
????????????????????flag?=?true;
????????????????}
????????????}
????????????if?(flag)?{
????????????????for?(i?=?i_max?-?1;?i?<=?n;?i++)?{//求h_max
????????????????????if?(current_table[i_max?-?1]?????????????????????????h_max?=?i;
????????????????????}
????????????????}
????????????????temp?=?current_table[i_max?-?1];//將i_max?-?1??與?h_max?互換
????????????????current_table[i_max?-?1]?=?current_table[h_max];
????????????????current_table[h_max]?=?temp;
????????????????//將i_max?之后的數進行逆序
????????????????for?(i?=?i_max;?i?<=?((i_max?+?n)?/?2);?i++)?{
????????????????????temp?=?current_table[i];
????????????????????current_table[i]?=?current_table[n?+?i_max?-?i];
????????????????????current_table[n?+?i_max?-?i]?=?temp;
????????????????}
????????????????printCurrentTable(current_table?n);//打印
????????????}
????????}
????}
????public?static?void?printCurrentTable(int?currentTable[]?int?n)?{//打印數組中的序列
????????StringBuilder?s?=?new?StringBuilder();
????????for?(int?i?=?1;?i?<=?n;?i++)?{
????????????s.append(currentTable[i]);
????????}
????????System.out.println(s);
????}
????public?static?void?main(String[]?args)?{//main
???????
????????System.out.println(“請輸入想要求解的全排序的數字:?0-9“);
????????Scanner?input?=?new?Scanner(System.in);
????????int?n?=?input.nextInt();//讀入
????????System.out.println(“你想要求解的數字?“?+?n?+?“??的全排列如下:?“);
????????getAllSort(n);
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2669??2014-09-05?09:07??DictionarySort.java
?????文件???????21760??2014-09-04?19:52??曲文杰—運行結果.png
- 上一篇:commons-csv-1.1
- 下一篇:Android 躲避球
評論
共有 條評論