Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

Changes between Version 3 and Version 4 of BubbleSort

Show
Ignore:
Author:
garth (IP: 165.72.200.11)
Timestamp:
02/14/07 15:24:50 (14 years ago)
Comment:

Last example with foreach did not modify the array (only local assignment of variables).

Legend:

Unmodified
Added
Removed
Modified
  • BubbleSort

    v3 v4  
    1010 
    1111/** 
    12 *   BubbleSort implementation in D 
     12*      BubbleSort implementation in D 
    1313**/ 
    1414class BubbleSort { 
     15         
     16        int[]   tobsorted; 
     17        public: 
     18         
     19        /** 
     20        * Constructor 
     21        **/ 
     22        this(int[] array) { 
     23                tobsorted                       = array; 
     24        } 
     25         
     26        int[] sort() { 
     27                // initialize variables 
     28                // x+y are used to iterate through the array using a for-loop 
     29                int     x, y, temp; 
    1530 
    16     int[]   tobsorted; 
    17     public: 
     31                // Iterate through every element in array 
     32                for(x = 0; x < tobsorted.length; x++) { 
    1833 
    19     /** 
    20     * Constructor 
    21     **/ 
    22     this(int[] array) { 
    23         tobsorted           = array; 
    24     } 
     34                        // 2nd iteration through array, comparing elements with each other 
     35                        // y may not be equal or bigger than array.length (throws exception) 
     36                         
     37                        for(y=0; y < (tobsorted.length -1); y++) { 
    2538 
    26     int[] sort() { 
     39                                // comare elements to each other 
     40                                // If element y < x 
     41                                // swap elements 
     42                                if(tobsorted[x] < tobsorted[y]) { 
    2743 
    28         // Iterate through every element in array 
    29         foreach( int x; tobsorted) { 
     44                                        temp            = tobsorted[x]; 
     45                                        tobsorted[x]    = tobsorted[y]; 
     46                                        tobsorted[y]    = temp; 
     47                                } 
     48                        } 
    3049 
    31             // 2nd iteration through array, comparing elements with each other 
    32             foreach(int y; tobsorted) { 
     50                        // Output current array to console 
     51                        foreach(int i; tobsorted) { 
     52                                writef("%02d ",i); 
     53                        } 
    3354 
    34                 // comare elements to each other 
    35                 // If element x < y 
    36                 // swap elements 
    37                 if(x < y) { 
    38                     debug writefln("swap(%d,%d)", x,y); 
    39                     typeof(x) temp = x; 
    40                     x    = y; 
    41                     y    = temp; 
    42                 } 
    43             } 
     55                        // append newline 
     56                        writefln(); 
     57                } 
    4458 
    45             // Output current array to console 
    46             foreach(int i; tobsorted) { 
    47                 writef("%02d ",i); 
    48            
     59                // return sorted array 
     60                return tobsorted; 
     61        } 
     62
    4963 
    50             // append newline 
    51             writefln(); 
    52         } 
    53  
    54         // return sorted array 
    55         return tobsorted; 
    56     } 
    57 } 
    5864 
    5965/** Explains itself 
    6066*   Initialize int-array with 15 elements 
    61 *   Then calls BubbleSort and outputs the sorted array 
    62 **/ 
     67*      Then calls BubbleSort and outputs the sorted array       
     68**/  
    6369int main(char[][] args) { 
     70         
     71        // initialize array 
    6472 
    65     // initialize array 
     73        static int[]    array   = [15,4,3,14,2,5,1,8,7,19,15,13,9,12,6,11]; 
    6674 
    67     static int[]    array   = [15,4,3,14,5,2,1,8,7,19,15,13,9,12,6,11]; 
     75        writefln("BubbleSort in D"); 
     76        writefln("---------------"); 
     77        writef("Sorting following numbers:\t"); 
     78        foreach(int i; array) { 
     79                writef("%02d ",i); 
     80        } 
     81        writefln("\nStarting now..."); 
     82        writefln(); 
    6883 
    69     writefln("BubbleSort in D"); 
    70     writefln("---------------"); 
    71     writef("Sorting following numbers:\t"); 
    72     foreach(int i; array) { 
    73         writef("%2d ",i); 
    74     } 
    75     writefln("\nStarting now..."); 
    76     writefln(); 
     84        BubbleSort      s       = new BubbleSort(array); 
     85        array                   = s.sort(); 
    7786 
    78     BubbleSort  s   = new BubbleSort(array); 
    79     array           = s.sort(); 
     87        writefln(); 
     88        writefln("I finished!"); 
     89        writef("Here's your sorted array:\t"); 
     90        foreach(int i; array) { 
     91                writef("%02d ",i); 
     92        } 
    8093 
    81     writefln(); 
    82     writefln("I finished!"); 
    83     writef("Here's your sorted array:\t"); 
    84     foreach(int i; array) { 
    85         writef("%2d ",i); 
    86     } 
    87  
    88     return 0; 
     94        return 0; 
    8995} 
    90  
    9196}}}