Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Sorting, Part I

Name: Anonymous 2009-03-29 11:17

//Bubble sort

//Bubble sort [TOP]
Array length:  10000 | Type: integer | Time:   319 ms |
Array length:  20000 | Type: integer | Time:  1281 ms |
Array length:  30000 | Type: integer | Time:  2868 ms |
Array length:  40000 | Type: integer | Time:  5086 ms |
Array length:  50000 | Type: integer | Time:  7965 ms |
Array length:  60000 | Type: integer | Time: 11462 ms |
Array length:  70000 | Type: integer | Time: 15708 ms |
Array length:  80000 | Type: integer | Time: 20418 ms |
Array length:  90000 | Type: integer | Time: 26028 ms |
Array length: 100000 | Type: integer | Time: 32243 ms |

//Bubble sort [BOTTOM]
Array length:  10000 | Type: integer | Time:   331 ms |
Array length:  20000 | Type: integer | Time:  1294 ms |
Array length:  30000 | Type: integer | Time:  2696 ms |
Array length:  40000 | Type: integer | Time:  4772 ms |
Array length:  50000 | Type: integer | Time:  7423 ms |
Array length:  60000 | Type: integer | Time: 10789 ms |
Array length:  70000 | Type: integer | Time: 14758 ms |
Array length:  80000 | Type: integer | Time: 19236 ms |
Array length:  90000 | Type: integer | Time: 24246 ms |
Array length: 100000 | Type: integer | Time: 29840 ms |

//Code
    /*Bubble sort [TOP]*/
    public static int[] BubbleT(int[] arr) {
        for(int i = 0; i < arr.length; i++) {
            for(int j = arr.length - 1; i < j; j--) {
                if(arr[j] < arr[j-1]) {
                    int temp = arr[j-1];
                    arr[j-1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }
   
    /*Bubble sort [BOTTOM]*/
    public static int[] BubbleB(int[] arr) {
        for(int i = arr.length - 1; 0 <= i; i--) {
            for(int j = 0; j < i; j++) {
                if(arr[j] > arr[j+1]) {
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }

//Shaker sort
Array length:  10000 | Type: integer | Time:   584 ms |
Array length:  20000 | Type: integer | Time:  2287 ms |
Array length:  30000 | Type: integer | Time:  5080 ms |
Array length:  40000 | Type: integer | Time:  9031 ms |
Array length:  50000 | Type: integer | Time: 14130 ms |
Array length:  60000 | Type: integer | Time: 20351 ms |
Array length:  70000 | Type: integer | Time: 27678 ms |
Array length:  80000 | Type: integer | Time: 36138 ms |
Array length:  90000 | Type: integer | Time: 45868 ms |
Array length: 100000 | Type: integer | Time: 57483 ms |

//Code
    public static int[] Shaker(int[] arr) {
        for(int i = 0, dir = -1; i < arr.length; i++) {
            for(int j = (dir == -1? 1 : arr.length - 1), pos = 0; 0 < j && j < arr.length; pos = dir == -1? j++ : j--) {
                if(arr[j] < arr[j-1]) {
                    int temp = arr[j-1];
                    arr[j-1] = arr[j];
                    arr[j] = temp;
                }
            }
            dir = -dir;
        }
        return arr;
    }


Obviously, I'm doing something wrong. But what?

Name: Anonymous 2009-03-30 2:43

>>16
I want to implement basic sorting algorithms first, before implementing heap sort, quick sort, radix sort, etc. Again, this is not homework. I'm doing it because sorting is relevant for my interest.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List