Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <hex>
- //new
- // lilarray[] = { -541, 54, 689, 12, 3, 0, 3, 55, 66, -541, 5468484, -564, 1554, 1656 }
- //;
- new lilarray[1024];
- new bigarray[sizeof(lilarray)];
- new heaparray[sizeof(lilarray)];
- new bubblearray[sizeof(lilarray)];
- #pragma tabsize 0
- #define START_BENCH(%0); {new __a=%0,__b=0,__c,__d=GetTickCount(),__e=1;do{}\
- while(__d==GetTickCount());__c=GetTickCount();__d=__c;while(__c-__d<__a||\
- __e){if(__e){if(__c-__d>=__a){__e=0;__c=GetTickCount();do{}while(__c==\
- GetTickCount());__c=GetTickCount();__d=__c;__b=0;}}{
- #define FINISH_BENCH(%0); }__b++;__c=GetTickCount();}printf(" Bench for "\
- %0": executes, by average, %.2f times/ms.",floatdiv(__b,__a));}
- stock Float:frandom(Float:max, Float:min = 0.0, dp = 4)
- {
- new
- Float:mul = floatpower(10.0, dp),
- imin = floatround(min * mul),
- imax = floatround(max * mul);
- return float(random(imax - imin) + imin) / mul;
- }
- stock BubbleSort(array[],length = sizeof(array))
- {
- new i, j;
- for (i = 0; i < length - 1; ++i)
- {
- for (j = 0; j < length - i - 1; ++j)
- {
- if (array[j] > array[j + 1])
- {
- new tmp = array[j];
- array[j] = array[j + 1];
- array[j + 1] = tmp;
- }
- }
- }
- }
- stock HeapSort (array [], n = sizeof (array))
- {
- new i;
- for (i = n / 2; i > 0; --i)
- SiftDown (array, i, n);
- for (i = n; i > 1; --i)
- {
- Swap (array [i - 1], array [0]);
- SiftDown (array, 1, i - 1);
- }
- }
- stock quickSort(array[], left, right)
- {
- new
- tempLeft = left,
- tempRight = right,
- pivot = array[(left + right) / 2],
- tempVar
- ;
- while(tempLeft <= tempRight)
- {
- while(array[tempLeft] < pivot) tempLeft++;
- while(array[tempRight] > pivot) tempRight--;
- if(tempLeft <= tempRight)
- {
- tempVar = array[tempLeft], array[tempLeft] = array[tempRight], array[tempRight] = tempVar;
- tempLeft++, tempRight--;
- }
- }
- if(left < tempRight) quickSort(array, left, tempRight);
- if(tempLeft < right) quickSort(array, tempLeft, right);
- }
- static stock SiftDown (array [], i, m)
- {
- new j;
- while (2 * i <= m)
- {
- j = 2 * i;
- if (j < m && array [j - 1] < array [j])
- ++j;
- if (array [i - 1] < array [j - 1])
- {
- Swap (array [i - 1], array [j - 1]);
- i = j;
- }
- else
- i = m;
- }
- }
- static stock Swap (&a, &b)
- {
- new s;
- s = a;
- a = b;
- b = s;
- }
- main()
- {
- //START_BENCH( 1000 );
- for(new zf;zf < sizeof(lilarray);zf++)
- {
- lilarray[zf]=random(100);
- printf("%d",lilarray[zf]);
- }
- for(new zf;zf < sizeof(lilarray);zf++)
- {
- heaparray[zf]=lilarray[zf];
- }
- for(new zf;zf < sizeof(lilarray);zf++)
- {
- bubblearray[zf]=lilarray[zf];
- }
- print(" ");
- START_BENCH( 1000 );
- quickSort(lilarray, 0, sizeof(lilarray) - 1);
- FINISH_BENCH( "quicksort" );
- START_BENCH( 1000 );
- HeapSort(heaparray);
- FINISH_BENCH( "heapsort" );
- START_BENCH( 1000 );
- BubbleSort(bubblearray);
- FINISH_BENCH( "bubblesort" );
- printf("%d",1<<1);
- printf("%d",2<<1);
- printf("%d",4<<1);
- printf("%d",8<<1);
- }
- public OnGameModeInit()
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement