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-29 12:21

You're right. The actual problem is that you're asking /prog/ to do your homework for you.

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