猿问

大神们 帮我看看选择排序法 哪里错了

/**

 * 功能是实现选择排序

 **/

package pro2;


public class work3 {


public static void main(String[] args) {

// TODO Auto-generated method stub

       int arr[]={1,2,5,7,0,6,8};

       choose Choose = new choose();

  Choose.sort(arr);

}


}


class choose {

public void sort(int arr[]) {

int temp = 0;

for (int j = 0; j < arr.length - 1; j++) { // 标记最小数组和元素

int minnumber = arr[j];

int min = j;

for (int k = j + 1; k < arr.length; k++) {

if (minnumber > arr[k]) { // 赋给他们最小值

minnumber = arr[k];

min = k;

}

// 交换值

temp = arr[j];

arr[j] = arr[min];

arr[min] = temp;


}


}


for (int i = 0; i < arr.length; i++) {

System.out.print(arr + "   ");


}


}


}


学无丶直径
浏览 1321回答 1
1回答

qq_青枣工作室_0

System.out.print(arr + "   ");改为System.out.print(arr[i] + "   ");另外,交换值,最好放到外层,提高效率。如下:class choose { public void sort(int arr[]) { for (int j = 0; j < arr.length - 1; j++) { // 标记最小数组和元素 int minnumber = arr[j]; int min = j; for (int k = j + 1; k < arr.length; k++) { if (minnumber > arr[k]) { // 赋给他们最小值 minnumber = arr[k]; min = k; } } if(min!=j) { // 交换值 arr[min] = arr[j]; arr[j] = minnumber; } } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + "   "); } } }
随时随地看视频慕课网APP

相关分类

Java
我要回答