我通过在同一个数组中使用和操作编写了一个用于选择排序的java代码。但是我没有将排序数组作为输出。请告诉我下面给出的代码中的更正代码.plz帮助thankyou
import java.lang.*;
import java.io.*;
class SS
{
int a[]={2,4,7,1,3};
int min=a[0],temp,x=0,m;
void swap(int p,int q)
{
temp=a[p];
a[p]=a[q];
a[q]=temp;
}
void ssort()
{
int n=a.length;
for(m=-1; m<n; m++)
{m=m+1;
for(int i=m;i<n;i++)
{
if(a[i]<min)
{
min=a[i];
x=i;
}
}
swap(m,x);
}
for(int k=0;k<=n;k++)
{
System.out.print(a[k]+" ");
}
}
public static void main(String args[])
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
SS obj=new SS();
obj.ssort();
}
}
答案 0 :(得分:1)
检查你的代码,你犯了几个错误,这里有正确的代码和一些提示:
这里是代码:
void ssort(int[] a) {
for (int m = 0; m < a.length; m++) {
int min = m;
for (int i = m + 1; i < a.length; i++) {
if (a[i] < a[min]) {
posmin = i;
}
}
int temp = a[m];
a[m] = a[min];
a[min] = temp;
}
}
注意:我使用了相同的变量名称。检查它,因为可能存在输入错误。
答案 1 :(得分:0)
如果你不习惯使用Arrays.sort(a)。 你可以用这个
void ssort() {
bubbleSort(a);
for (int i : a) {
System.out.println(i);
}
}
public static void bubbleSort(int [] array) {
for(int i = 0; i < array.length; i++) {
boolean flag = false;
for(int j = 0; j < array.length-1; j++) {
if(array[j]>array[j+1]) {
int k = array[j];
array[j] = array[j+1];
array[j+1] = k;
flag=true;
}
}
if(!flag) break;
}
}