Сортировать массив от наименьшего к наибольшему, используя Java - PullRequest
5 голосов
/ 19 января 2012

Я должен создать массив и отсортировать числа от наименьшего к наибольшему.Вот что у меня есть:

public class bubbleSort {

public static void sort (int [] arrayName){
    int temp;
    for (int i = 0; i < arrayName.length-1; i++)
    {
        if(arrayName[i] > arrayName[i+1])
        {
            temp=arrayName[i];
            arrayName[i]=arrayName[i+1];
            arrayName[i+1]=temp;
            i=-1;
        }
    }
}

public static void main(String[] args) {
    int [] arrayName = new int[10]; 
    for (int i = 0; i < arrayName.length; i++) { 
      arrayName[i] = (int)(Math.random()*100); 
    } 

    System.out.println(sort(arrayName)); 
}
}

Я получаю сообщение об ошибке в последней строке, где я пытаюсь его распечатать.Что я делаю не так?

Ответы [ 9 ]

15 голосов
/ 19 января 2012

Ваш метод sort(int[] array) ничего не возвращает.Это недействительно, поэтому вы не можете распечатать его возвращение.

3 голосов
/ 20 января 2012

Вам нужно перебрать массив и распечатать каждое значение.Вы не можете просто напечатать ().Вместо этого попробуйте:

// sort the array
sort(arrayName);
for( int sortedValue : arrayName )
  System.out.println( sortedValue );

, который будет перебирать каждый элемент массива и распечатывать его.

Вы также можете использовать метод commons-lang's ArrayUtils.toString()все автоматически для вас, но я предполагаю, что, поскольку это домашнее задание, вы не можете просто использовать внешние библиотеки, чтобы выполнять свою работу за вас.

2 голосов
/ 20 июля 2013

Может быть, вы можете использовать lambdaj ( скачать здесь , website ), эта библиотека очень мощная для управления коллекциями (..list, массивами), следующий код очень прост отлично работает:

import static ch.lambdaj.Lambda.on;
import static ch.lambdaj.Lambda.DESCENDING;
import static ch.lambdaj.Lambda.sort;
import java.util.Arrays;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        List<Integer> numberList =  Arrays.asList(4,8,2,3,4,1,13,2,5);

        List<Integer> sortedList = sort(numberList, on(Integer.class));
        System.out.println(sortedList); //shows ascending list

        sortedList = sort(numberList, on(Integer.class), DESCENDING);
        System.out.println(sortedList); //shows descending list
    }
}

Этот код показывает:

[1, 2, 2, 3, 4, 4, 5, 8, 13]
[13, 8, 5, 4, 4, 3, 2, 2, 1]

В одной строке вы можете отсортировать список, это простой пример, но с помощью этой библиотеки вы можете разрешить больше.

sort(numberList, on(Integer.class));

Вы должны добавить lambdaj-2.4.jar в свой проект. Я надеюсь, что это будет полезно.

Примечание. Это поможет вам предположить, что у вас могут быть альтернативы коду.

1 голос
/ 20 июля 2013

В целях обучения написание собственной функции сортировки - это хорошо, но для производственного кода всегда используйте java API Arrays.sort

0 голосов
/ 31 августа 2016

Сортировка массива без использования встроенных функций в Java ...... просто создайте новый файл без имени -> (ArraySorting.java) ..... Запустите проект и наслаждайтесь им !!!!!

import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class ArraySorting 
{
 public static void main(String args[])
 {
    int temp=0;   
    Scanner user_input=new Scanner(System.in);
    System.out.println("enter Size elements...");
    int Size=user_input.nextInt();

    int[] a=new int[Size];
    System.out.println("Enter element Of an Array...");
    for(int j=0;j<Size;j++)
    {
        a[j]=user_input.nextInt();
    }     
    for(int index=0;index<a.length;index++)
    {
        for(int j=index+1;j<a.length;j++)
        {
             if(a[index] > a[j] ) 
             {
                 temp = a[index];
                 a[index] = a[j];
                 a[j] = temp;
             }
        }
    }
    System.out.print("Output is:- ");
    for(int i=0;i<a.length;i++)
    {
        System.out.println(a[i]);
    }

}

}

0 голосов
/ 31 августа 2016

Создайте файл с помощью Java Extentation.i-e (ArraySorting.java), а затем вставьте код ....

import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class ArraySorting 
{


public static void main(String args[])
{
       Scanner user_input=new Scanner(System.in);

       System.out.println("enter Size elements...");
       int Size=user_input.nextInt();

       int[] a=new int[Size];
       System.out.println("Enter element Of an Array...");
        for(int j=0;j<Size;j++)
        {
            a[j]=user_input.nextInt();
        }

        Arrays.sort(a);       
        for(int index=0;index<a.length;index++)
        {
            System.out.println(a[index]);
        }

}

}

0 голосов
/ 03 сентября 2015

Это «более чистый» способ сделать это (я думаю):

    public static void main(String[] args) throws IOException {

    int[] array = {1,4,2,8,4,7,5 /*put in the numbers you want to sort*/};

    Arrays.sort(array); /*You will need to import this function*/

    for (int i = 0; i < array.length; i++) {
       System.out.println(array[i]);
    }

    }

Надеюсь, что это поможет!

0 голосов
/ 20 июля 2013
public static int[ ] arraySortUp( int[ ] intArray )
{
        int toSwap, indexOfSmallest = 0;
        int i, j, smallest;

        for( i = 0; i < intArray.length; i ++ )
        {               

            smallest = Integer.MAX_VALUE;

            for( j = i; j < intArray.length; j ++ )
            {
                if( intArray[ j ] < smallest )
                {
                    smallest = intArray[ j ];
                    indexOfSmallest = j;
                }                   
            }

            toSwap = intArray[ i ];
            intArray[ i ] = smallest;
            intArray[ indexOfSmallest ] = toSwap;
        }

        return intArray;
}       
0 голосов
/ 19 апреля 2013

Вам нужно изменить метод сортировки - он ничего не возвращает.

public static void для метода, в котором вы ничего не возвращаете.Попробуйте это:

public static int sort (int[] arrayname)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...