简体   繁体   中英

Bubble sort didnt sort

I tried to do bubble sort and still a beginner, I didn't find any errors but when I tried to sort it alphabetically it didn't sort the array.

public class Main {

public static void bubblesort ( String [] name) {
    String tempmemory = " na";

    for (int i = 0; i < name.length; i++) {
        for (int j = 0; j < (name.length - 1); j++) {

            if (name[j].compareTo(name[j + 1]) < 0)

                tempmemory = name[j];
            name[j] = name[j + 1];
            name[j + 1] = tempmemory;
        }
    }
}

public static void main ( String [] args) {

    String [] name  = { "ciku", "eman","aina"} ;

    int i=0;

    System.out.println(" Before sort : ");
    while (i < name.length)
    {
        System.out.print ( name[i] + "  ");

        i++;
    }

    bubblesort(name);

    i=0;
    System.out.println(" \n After sort : ");
    while (i < name.length)
    {
        System.out.print ( name[i] + "  ");

        i++;
    }

}

}

Your if condition should include those 3 statements, right now it only have one statement under it ie tempmemory = name[j];. So use {} bracket for if condition if it has multiple statement. So write if statement like this:

if (name[j].compareTo(name[j + 1]) < 0) 
 { tempmemory = name[j];   
   name[j] = name[j + 1];
   name[j + 1] = tempmemory; }

This chunk of code:

            if (name[j].compareTo(name[j + 1]) < 0)

                tempmemory = name[j];
            name[j] = name[j + 1];
            name[j + 1] = tempmemory;

is obviously wrong.

Hint: use { and } to fix it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM