java 数据排序需求分析_java 实现数组全排序
什么是全排序?
所謂的數(shù)組全排序也就是將數(shù)組中的元素的所有排列組合全部列出來(lái)
比如 數(shù)組 char[] data = {'a', 'b', 'c', 'd'}; 那么就需要將 abcd, acbd, adcd .....? 所有的排列組合全部列出
思路—找規(guī)律
數(shù)組全排序的實(shí)現(xiàn)方式很多,在這里我采用的是遞歸的方式,還是上面的例子:abcd
(1) 首先將首字母分別與后面的n(n>=1)個(gè)字母交換
abcd? bacd? cbad? dbca
(1)將交換后的字符數(shù)組第n位和n+1位進(jìn)行交換并打印(遞歸實(shí)現(xiàn))
實(shí)現(xiàn)代碼
private static void sort(char[] data) {
for (int i=0; i
//將首字母與其他字母進(jìn)行交換
change(data, 0, i);
print(data, 1);
}
}
private static void print(char[] data, int index) {
//已經(jīng)到頭了
if (index == data.length) {
return;
}
System.out.println(Arrays.toString(data));
//將第n位和n+1位進(jìn)行交換
change(data, index, index + 1);
print(data, index + 1);
}
private static void change(char[] data, int i, int j) {
char b = data[0];
data[0] = data[i];
data[i] = b;
}
public static void main(String[] args) {
char[] data = {'a', 'b', 'c', 'd'};
sort(data);
}
總結(jié)
以上是生活随笔為你收集整理的java 数据排序需求分析_java 实现数组全排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java dh算法_https密钥交换D
- 下一篇: js 操作java对象_JavaScri