1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include "SortTestHelper.h" int main( void ) { void BubbleSort( int * arr , int n); void BubbleSortAdvance( int * arr, int n); int n = 100000; int *arr = SortTestHelper::generateRandom(n,1,100000); int *arr1 = SortTestHelper::copyIntArray(arr,n); int *arr2 = SortTestHelper::copyIntArray(arr,n); SortTestHelper::testSort( "BubbleSort" ,BubbleSort, arr,n); SortTestHelper::testSort( "BubbleSort" ,BubbleSort,arr1,n); SortTestHelper::testSort( "BubbleSortAdvance" ,BubbleSortAdvance,arr2,n); return 0; } void BubbleSort( int * arr, int n) { for ( int i = 0;i < n;i++) { for ( int j = 1;j < n - i;j++) { if (arr[j - 1] > arr[j]) swap(arr[j - 1],arr[j]); } } } void BubbleSortAdvance( int * arr, int n) { for ( int i = 0;i < n;i++) { int j = 0; int temp = arr[j]; for ( int j = 0;j < n - i - 1;j++) { if (temp > arr[j + 1]) { // temp = arr[j]; arr[j] = arr[j+1]; } else { arr[j] = temp; temp = arr[j + 1]; } arr[j + 1] = temp; } } } |
BubbleSort : 36.466s
BubbleSort : 36.384s
BubbleSortAdvance : 30.072s