Java中的选择排序 导入java.awt.event.*; 导入javax.swing.*; 导入java.util.ArrayList; 导入java.util.array; 公共类排序实践{ 私有int[]轨道炮={2,7,4,2,4,7,1}; 公共排序实践(){ System.out.println(Arrays.toString(railgun)); 选择运动(轨道炮); System.out.println(Arrays.toString(railgun)); } 公共静态无效选择排序(int[]射线){ 对于(int j=0;j
我已经在纸上写下了这段代码,并运行了多次,但由于某些原因,它不起作用。我不确定我是否错过了a-1或者什么,只是没有注意到。有人请看一下Java中的选择排序 导入java.awt.event.*; 导入javax.swing.*; 导入java.util.ArrayList; 导入java.util.array; 公共类排序实践{ 私有int[]轨道炮={2,7,4,2,4,7,1}; 公共排序实践(){ System.out.println(Arrays.toString(railgun)); 选择运动(轨道炮); System.out.println(Arrays.toString(railgun)); } 公共静态无效选择排序(int[]射线){ 对于(int j=0;j,java,sorting,selection,Java,Sorting,Selection,我已经在纸上写下了这段代码,并运行了多次,但由于某些原因,它不起作用。我不确定我是否错过了a-1或者什么,只是没有注意到。有人请看一下 我不是在寻找工作代码。对我的错误进行解释/纠正,以便我能更好地理解我做错了什么,以及如何自己纠正它。谢谢:)这里可能有问题:int low=0; 试着改变低=j 我试过了,成功了 import java.awt.event.*; import javax.swing.*; import java.util.ArrayList; import java.util.
我不是在寻找工作代码。对我的错误进行解释/纠正,以便我能更好地理解我做错了什么,以及如何自己纠正它。谢谢:)这里可能有问题:int low=0; 试着改变低=j 我试过了,成功了
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();
}
}
publicstaticvoidselectionsort(int[]ray){
对于(int j=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;
}
publicstaticvoidselectionsort(int[]数字){
int-tempVar=0;
for(int i=0;i数字[j]){
tempVar=数字[j-1];
数字[j-1]=数字[j];
数字[j]=tempVar;
}
}
}
}
int low=j
否则,你总是将数字与第一个数字进行比较
注:
不要说你只是一个初学者。这些都是每个人都应该首先学习的问题。使用调试器或继续测试论文。谢谢!我刚刚解决了这个问题,现在看看为什么!它总是编辑第一个数字!愚蠢的错误。low是零->如果(ray[I]
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;
}
}
}
}