使用Java中的Selection排序进行排序

时间:2014-02-21 01:01:32

标签: java sorting selection-sort

我的家庭作业是为了做到这一点

对于下面的数组,演示Selection和Insertion Sorts的步骤(pass):

5 2 3 1 6 9 8

请务必写出原始数组,以及每次传递后的样子。

我收到一个奇怪的if语句错误。

  

我的错误说=非法启动类型。在源头的一个位置   在预期类型的​​地方还有别的东西,很可能是a   java关键字。检查此行是否有错误的定义类型

。任何人都可以帮助我。以下是我的代码

import java.util.*;
public class Selection_Sort
{
final int[] myArray = { 5, 2, 3, 1, 6, 8, 9 };
int min;
{
  int min, temp;

  for (int index = 0; index < myArray.length-1; index++)
  {
     min = index;
     for (int scan = index+1; scan < myArray.length; scan++)
        if (myArray[scan] < myArray[min])
           min = scan;
     temp = myArray[min];
     myArray[min] = myArray[index];
     myArray[index] = temp;
  }
}
if (min !=i)
     {
        final int temp = myArray[i];
        myArray[i] = myArray[min];
        myArray[min] = temp;
    }
    System.out.println(myArray[i]);
 }

1 个答案:

答案 0 :(得分:0)

在清理完语法错误并最好地猜测代码结构的含义之后,结果如下:

import java.util.*;
public class Selection_Sort {
  final static int[] myArray = { 5, 2, 3, 1, 6, 8, 9 };

  public static void main(String[] args){
    int min, temp;

    for (int index = 0; index < myArray.length-1; index++) {
       min = index;
       for (int scan = index+1; scan < myArray.length; scan++){
        if (myArray[scan] < myArray[min]){
           min = scan;
         }
      }

      temp = myArray[min];
      myArray[min] = myArray[index];
      myArray[index] = temp;

      if (min != index) {
        temp = myArray[index];
        myArray[index] = myArray[min];
        myArray[min] = temp;
      }
      System.out.println(myArray[index]);
    }
  }
}

程序的输出不是你想要的,但这是你的起点。

一旦你看了这个并看看有效的程序是什么样的,那么你就可以开始对你的代码进行修改,使它做你想做的事。

以下是一些提示:

  • 进行增量更改
  • 在开始添加功能之前,尝试始终拥有代码的工作副本
  • 当你第一次制作代码时,使用大量的印刷语句来帮助你想象出正在发生的事情