java选择排序使用单个数组

时间:2015-11-15 08:56:48

标签: java arrays sorting

我通过在同一个数组中使用和操作编写了一个用于选择排序的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();
}
}

2 个答案:

答案 0 :(得分:1)

检查你的代码,你犯了几个错误,这里有正确的代码和一些提示:

  • 传递数组以作为参数排序
  • 使用正确的缩进来更好地阅读您的代码
  • 仅在需要时定义变量
  • 不使用实例变量,只使用变量locales到方法

这里是代码:

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; 
    }
}