| People like bubble sorts -- could it be the name? One nice aspect of
bubble sorts is that they can quit early if the elements are almost sorted.
NOTE: As always, it's better if you don't write your own sorts. Java
has better sort methods in java.util.Arrays.sort(...) and java.util.Collections.sort(...).
But sorts are excellent practice, and are a technique that all students
are expected to understand to some extent.
The Bubble Sort method works like this: In a series of n-1 iterations,
the successive elements, list[index] and list[index + 1] of list are compared.
If list[index] is greater than list[index + 1], then the elements of list[index]
and list[index + 1] are swapped.
This process is repeated through the list until no swaps are necessary.
On average, for a list with length 'n', the Bubble Sort method takes:
* key comparisons:
(n*(n-1))/2
* item
assignments: (n*(n-1))/4
public class TestBubbleSort {
public static void main(String[] args) {
int unsortedArray[] = {10,
97, 6, 23, 0, -45, 697, -1000, 1, 0}; //Random set of numbers for example.
int i;
bubbleSort(unsortedArray,
unsortedArray.length); //Pass the array to be sorted and its length.
System.out.println("After
sorting, the list elements are: "); //Just to show you it worked. :)
for(i=0; i<unsortedArray.length;
i++) {
System.out.print(unsortedArray[i] + " ");
}
}
private static void bubbleSort(int[] unsortedArray,
int length) {
int temp, counter, index;
for(counter=0; counter<length-1;
counter++) { //Loop once for each element in the array.
for(index=0; index<length-1-counter; index++) { //Once for each element,
minus the counter.
if(unsortedArray[index] > unsortedArray[index+1]) { //Test if need a swap
or not.
temp = unsortedArray[index]; //These three lines just swap the two elements:
unsortedArray[index] = unsortedArray[index+1];
unsortedArray[index+1] = temp;
}
}
}
}
}
<-- End of Program -->
Do you have a Java Problem?
Ask It in The Java
Forum
Java Books
Java
Certification, Programming, JavaBean and Object Oriented Reference Books
Return to : Java
Programming Hints and Tips
All the site contents are Copyright © www.erpgreat.com
and the content authors. All rights reserved.
All product names are trademarks of their respective
companies.
The site www.erpgreat.com is not affiliated with or endorsed
by any company listed at this site.
Every effort is made to ensure the content integrity.
Information used on this site is at your own risk.
The content on this site may not be reproduced
or redistributed without the express written permission of
www.erpgreat.com or the content authors.
|