【问题标题】:Selection Sort in JavaJava中的选择排序
【发布时间】:2014-04-07 03:32:12
【问题描述】:
import java.awt.event.*;
import javax.swing.*;
import java.util.ArrayList;
import java.util.Arrays;


public class SortPractice {

private int[] railgun = {2,7,4,2,4,7,1};


public SortPractice() {
    System.out.println(Arrays.toString(railgun));
    SelectionSort(railgun);
    System.out.println(Arrays.toString(railgun));
}


public static void SelectionSort(int[] ray){

    for(int j = 0; j < ray.length; j++){

    int low = 0;
    for(int i = j; i < ray.length;i++){
        if(ray[i] < ray[low])
            low = i;
    }
    System.out.println(ray[low]);
    int temp = ray[low];
    ray[low] = ray[j];
    ray[j] = temp;
}

}


public static void main(String[] args) {
   SortPractice steve = new SortPractice();
}
}

我已将这段代码写在纸上并运行了多次,但由于某种原因它无法正常工作。我不确定我是否缺少-1或其他东西,只是没有注意到。有人请看一看。

我不是在寻找工作代码。只是和解释/修复我的,所以我可以更好地理解我做错了什么以及如何自己修复它。谢谢:)

【问题讨论】:

  • 使用调试器或继续测试论文。

标签: java sorting selection


【解决方案1】:

这里可能有问题:int low = 0; 尝试改变低 = j

我试过了,成功了

public static void SelectionSort(int[] ray){

    for(int j = 0; j < ray.length; j++){

    int low = j;
    for(int i = j; i < ray.length;i++){
        if(ray[i] < ray[low])
            low = i;
    }
    System.out.println(ray[low]);
    int temp = ray[low];
    ray[low] = ray[j];
    ray[j] = temp;
}

【讨论】:

  • 谢谢!我刚刚解决了,现在看看为什么!它总是在编辑第一个数字!愚蠢的错误。
  • low 为零 -> if(ray[i]
  • 是的!我现在明白了!我很感激!
【解决方案2】:

试试这个。很简单。

public static void SelectionSort(int[] numbers) {

    int tempVar = 0;

    for (int i = 0; i < numbers.length; i++) {
        for (int j = 1; j < numbers.length - i; j++) {
            if (numbers[j - 1] > numbers[j]) {
                tempVar = numbers[j - 1];
                numbers[j - 1] = numbers[j];
                numbers[j] = tempVar;
            }
        }
    }
}

【讨论】:

【解决方案3】:

int 低 = j;

否则,您总是将数字与第一个数字进行比较。

注意:

  1. 你的名字很糟糕:wtf是轨道炮? wtf是雷吗?
  2. 方法应该以小写字母开头 -> 选择应该是选择
  3. 缩进!

不要说你只是一个初学者。这些是每个人都应该首先了解的问题。

【讨论】:

    猜你喜欢
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多