Java SelectionSort算法将所有元素替换为零
主要类别:Java SelectionSort算法将所有元素替换为零,java,arrays,sorting,selection-sort,Java,Arrays,Sorting,Selection Sort,主要类别: import java.util.Random; public class Main{ public static void main(String args[]){ Main m = new Main(); m.run(); } private void run(){ Random r = new Random(); int[] array = new int[50];
import java.util.Random;
public class Main{
public static void main(String args[]){
Main m = new Main();
m.run();
}
private void run(){
Random r = new Random();
int[] array = new int[50];
for(int el:array){
el = r.nextInt(50);
System.out.print(el + " ");
}
System.out.println("");
long start = System.currentTimeMillis();
SelectionSort.run(array,50);
long finish = System.currentTimeMillis();
long timeElapsed = finish - start;
for(int el:array){
System.out.print(el + " ");
}
System.out.println("");
System.out.println(timeElapsed);
}
}
选择分类:
public class SelectionSort{
public static void run(int[] array, int size){
int m = 0;
int temp = 0;
for (int i=0; i<size-1; ++i){
m = i;
for (int j=i+1; j<size; ++j){
if (array[m]>array[j]){
m = j;
}
}
temp = array[i];
array[i] = array[m];
array[m] = temp;
}
}
}
为什么都是零?我做错了什么?真的不知道会是什么。。。我多次编辑我的代码,仍然没有解决方案。。。我是新手,你能帮我吗
我知道java有排序方法,但我正在做一些练习
int[] array = new int[10];
int i = 0;
for (int el : array) {
el = r.nextInt(50);
array[i++] = el;
System.out.print(el + " ");
}
您忘记填充数组了
公共类Foo{
公共静态void main(字符串参数[]){
Foo m=新的Foo();
m、 run();
}
私家车{
int[]arr=createRandomArray(50);
System.out.println(Arrays.toString(arr));
长启动=System.currentTimeMillis();
新建SelectionSort().accept(arr);
长时间=System.currentTimeMillis()-启动;
System.out.println(Arrays.toString(arr));
System.out.println(“时间(毫秒):”+时间);
}
私有静态int[]createRandomArray(int长度){
随机=新随机();
int[]arr=新的int[长度];
对于(int i=0;i
int[] array = new int[10];
int i = 0;
for (int el : array) {
el = r.nextInt(50);
array[i++] = el;
System.out.print(el + " ");
}
public class Foo {
public static void main(String args[]) {
Foo m = new Foo();
m.run();
}
private void run() {
int[] arr = createRandomArray(50);
System.out.println(Arrays.toString(arr));
long start = System.currentTimeMillis();
new SelectionSort().accept(arr);
long time = System.currentTimeMillis() - start;
System.out.println(Arrays.toString(arr));
System.out.println("time (ms): " + time);
}
private static int[] createRandomArray(int length) {
Random random = new Random();
int[] arr = new int[length];
for (int i = 0; i < arr.length; i++)
arr[i] = random.nextInt(50);
return arr;
}
}
final class SelectionSort implements Consumer<int[]> {
@Override
public void accept(int[] arr) {
for (int i = 0, j = i; i < arr.length - 1; i++, j = i) {
for (int k = i + 1; k < arr.length; k++)
j = arr[k] < arr[j] ? k : j;
swap(arr, i, j);
}
}
private static void swap(int[] arr, int i, int j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}