如下代码有什么错误?
public class ArraySelect {
static void SelectSort(int[] arrays){
for(int i=0;i<arrays.length-1;i++){
int currentMinIndex=i;
for(int j=i+1;j<arrays.length;j++){
if(arrays[currentMinIndex]>arrays[i]){
currentMinIndex=j;
}
}
if(currentMinIndex!=i){
int temp=arrays[i];
arrays[i]=arrays[currentMinIndex];
arrays[currentMinIndex]=temp;
}
}
for(int i=0;i<arrays.length;i++){
System.out.println(i);
}
}
}public class TestArray { public static void main(String[] args) {
int[] arrays={5,8,5,77,9,-9};
ArraySelect.SelectSort(arrays);
}
}
public class ArraySelect {
static void SelectSort(int[] arrays){
for(int i=0;i<arrays.length-1;i++){
int currentMinIndex=i;
for(int j=i+1;j<arrays.length;j++){
if(arrays[currentMinIndex]>arrays[i]){
currentMinIndex=j;
}
}
if(currentMinIndex!=i){
int temp=arrays[i];
arrays[i]=arrays[currentMinIndex];
arrays[currentMinIndex]=temp;
}
}
for(int i=0;i<arrays.length;i++){
System.out.println(i);
}
}
}public class TestArray { public static void main(String[] args) {
int[] arrays={5,8,5,77,9,-9};
ArraySelect.SelectSort(arrays);
}
}
int[] arrs={1,10,9,18,5,7,12};
for (int i = 0; i < arrs.length; i++) {
for (int j = i+1; j < arrs.length; j++) {
if (arrs[i]>arrs[j]) {
int tep = 0;
tep=arrs[i];
arrs[i]=arrs[j];
arrs[j]=tep;
}
}
System.err.print(arrs[i]);
System.err.print(" ");
}
}
不如冒泡排序 都一样的
public static void main(String[] args) {
int[] array = {3,2,6,1,5,9,8,-2};
zhijie(array);
maopao(array);
}
//直接排序
public static void zhijie(int[] array){
for(int i=0;i<array.length-1;i++){
int temp;
for(int j = i+1;j<array.length;j++){
if(array[i]>array[j]){
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
for(int a : array){
System.out.println(a);
}
}
//冒泡排序
public static void maopao(int[] array){
for(int i=0;i<array.length-1;i++){
int temp;
for(int j = 0;j<array.length-1-i;j++){
if(array[j]>array[j+1]){
temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}
for(int a : array){
System.out.println(a);
}
}
}
2.第二个if位置放的不对,应该放在第一个for循环中,而且条件判断多余。