冒泡排序 Java,Java 的新手
Bubblesort Java, new to Java
public class App {
public static void main( String[] args ) {
int[] set = {0,0,0,0,0,0,0};
for(int i = 0; i < 7; i++) {
boolean unique = false;
while (!unique) {
int j = 0;
try {
j = JRandom.randInt(1, 45);
}
catch (ParamterException e) {
e.printStackTrace();
}
unique = true;
for(int k = 0 ; k < 7; k++) {
if (j==set [k]) {
unique = false;
break;
}
}
if (unique) {
set [i] = j;
}
}
}
for (int i= 0; i < 6; i++) {
if (i == 5) {
System.out.println(set[i]);
}
else {
System.out.print(set[i]+", ");
}
}
System.out.println("Bonus Ball = " + set[6]);
}
}
我想知道如何在这段代码中实现冒泡排序。它在我的机器上运行并产生 6 个随机数 + 一个奖励球。
2, 34, 25, 14, 39, 13
Bonus Ball = 30
我的目标是让它打印出来,这样数字就会上升,这样它就像乐透一样,无论如何都是这个想法。
就这些了,谢谢。
for (i = 0 ; i < set.length() -2; i ++){
for(j = i+1 ; j< set.length()-1 ; j++){
if(set[i]<set[j]){
int dummy = set[i];
set[i] = set[j];
set[j] = dummy;
}
}
}
上面的冒泡排序只排序了 6 个生成的数字,你的 Bonus ball 仍然存在于 set[6]
现在剩下的就是你的打印功能了。
冒泡排序集合数组:-
int temp = 0;
for(int i = 0;i<set.length-1;i++)
{
for(int j = 0;j<set.length-1;j++)
{
if(set[j]>set[j+1])
{
temp = set[j];
set[j] = set[j+1];
set[j+1] = temp;
}
}
}
//Your set array is sorted using bubble sort at this point.
可以这样制作:
for (int i = set.length-1; i >= 0; i --) {
for (int j = 0; j < i; j++) {
if (set[j] > set[j + 1]) {
int aux = set[j];
set[j] = set[j + 1];
set[j + 1] = aux;
}
}
}
初始循环,这种方式也有帮助,不会浪费资源比较已经排序的索引。
如果不强制使用冒泡排序算法,只需使用已经提到的Array.sort方法。
public class App {
public static void main( String[] args ) {
int[] set = {0,0,0,0,0,0,0};
for(int i = 0; i < 7; i++) {
boolean unique = false;
while (!unique) {
int j = 0;
try {
j = JRandom.randInt(1, 45);
}
catch (ParamterException e) {
e.printStackTrace();
}
unique = true;
for(int k = 0 ; k < 7; k++) {
if (j==set [k]) {
unique = false;
break;
}
}
if (unique) {
set [i] = j;
}
}
}
for (int i= 0; i < 6; i++) {
if (i == 5) {
System.out.println(set[i]);
}
else {
System.out.print(set[i]+", ");
}
}
System.out.println("Bonus Ball = " + set[6]);
}
}
我想知道如何在这段代码中实现冒泡排序。它在我的机器上运行并产生 6 个随机数 + 一个奖励球。
2, 34, 25, 14, 39, 13
Bonus Ball = 30
我的目标是让它打印出来,这样数字就会上升,这样它就像乐透一样,无论如何都是这个想法。
就这些了,谢谢。
for (i = 0 ; i < set.length() -2; i ++){
for(j = i+1 ; j< set.length()-1 ; j++){
if(set[i]<set[j]){
int dummy = set[i];
set[i] = set[j];
set[j] = dummy;
}
}
}
上面的冒泡排序只排序了 6 个生成的数字,你的 Bonus ball 仍然存在于 set[6]
现在剩下的就是你的打印功能了。
冒泡排序集合数组:-
int temp = 0;
for(int i = 0;i<set.length-1;i++)
{
for(int j = 0;j<set.length-1;j++)
{
if(set[j]>set[j+1])
{
temp = set[j];
set[j] = set[j+1];
set[j+1] = temp;
}
}
}
//Your set array is sorted using bubble sort at this point.
可以这样制作:
for (int i = set.length-1; i >= 0; i --) {
for (int j = 0; j < i; j++) {
if (set[j] > set[j + 1]) {
int aux = set[j];
set[j] = set[j + 1];
set[j + 1] = aux;
}
}
}
初始循环,这种方式也有帮助,不会浪费资源比较已经排序的索引。
如果不强制使用冒泡排序算法,只需使用已经提到的Array.sort方法。