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?