求编程算法????

来源:百度知道 编辑:UC知道 时间:2024/06/22 06:29:44
给出洗牌的一个算法,并且将洗好的牌存储在一个整形数组里??

public class Test {
// 洗牌算法
public static void main(String[] args) {

long[] card = new long[52];
long num = 0l;// 随机数
long num2 = 0l;// 随机数2
boolean flag = true;// 产生随机数的标志
long temp;// 交换数据的临时变量
for (int i = 0; i < card.length; i++) {

while (flag) {
num = Math.round(Math.random() * 51 + 1);
for (int j = 0; j < card.length; j++) {
if (num == card[j]) {
break;
} else if (j == card.length - 1) {
flag = false;
}
}
}
card[i] = num;
flag = true;
}
// 冒泡排序
for (int i = 0; i < card.length - 1; i++) {
for (int j = 0; j < card.length - 1 - i; j++) {
if (card[j] > card[j + 1]) {
temp = card[j];
card[j] = card[j + 1];
card[j + 1] = temp;
}
}
}
// 打印
for (int i = 0; i < card.length; i++) {
S