日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 数据排序需求分析_java 实现数组全排序

發布時間:2024/1/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 数据排序需求分析_java 实现数组全排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是全排序?

所謂的數組全排序也就是將數組中的元素的所有排列組合全部列出來

比如 數組 char[] data = {'a', 'b', 'c', 'd'}; 那么就需要將 abcd, acbd, adcd .....? 所有的排列組合全部列出

思路—找規律

數組全排序的實現方式很多,在這里我采用的是遞歸的方式,還是上面的例子:abcd

(1) 首先將首字母分別與后面的n(n>=1)個字母交換

abcd? bacd? cbad? dbca

(1)將交換后的字符數組第n位和n+1位進行交換并打印(遞歸實現)

實現代碼

private static void sort(char[] data) {

for (int i=0; i

//將首字母與其他字母進行交換

change(data, 0, i);

print(data, 1);

}

}

private static void print(char[] data, int index) {

//已經到頭了

if (index == data.length) {

return;

}

System.out.println(Arrays.toString(data));

//將第n位和n+1位進行交換

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);

}

總結

以上是生活随笔為你收集整理的java 数据排序需求分析_java 实现数组全排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。