1.14 Sorting Numbers

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


Java Examples in a Nutshell
Java Examples in a Nutshell, 3rd Edition
ISBN: 0596006209
EAN: 2147483647
Year: 2003
Pages: 285

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net