Example 1-14
implements a simple (but inefficient) algorithm for sorting an array
of numbers. This example doesn’t introduce any new elements of Java
syntax, but it is interesting because it reaches a real-world level of
complexity. The sorting algorithm manipulates array entries using an
if
statement within a for
loop that is itself within another
for
loop. You should take the time
to study this short program carefully. Make sure that you understand
exactly how it goes about sorting its array of numbers.
Example 1-14. SortNumbers.java
package je3.basics; /** * This class demonstrates how to sort numbers using a simple algorithm **/ public class SortNumbers { /** * This is a very simple sorting algorithm that is not very efficient * when sorting large numbers of things **/ public static void sort(double[ ] nums) { // Loop through each element of the array, sorting as we go. // Each time through, find the smallest remaining element, and move it // to the first unsorted position in the array. for(int i = 0; i < nums.length; i++) { int min = i; // holds the index of the smallest element // find the smallest one between i and the end of the array for(int j = i; j < nums.length; j++) { if (nums[j] < nums[min]) min = j; } // Now swap the smallest one with element i. // This leaves all elements between 0 and i sorted. double tmp; tmp = nums[i]; nums[i] = nums[min]; nums[min] = tmp; } } /** This is a simple test program for the algorithm above */ public static void main(String[ ] args) { double[ ] nums = new double[10]; // Create an array to hold numbers for(int i = 0; i < nums.length; i++) // Generate random numbers nums[i] = Math.random( ) * 100; sort(nums); // Sort them for(int i = 0; i < nums.length; i++) // Print them out System.out.println(nums[i]); } }
Get Java Examples in a Nutshell, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.