Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- #include <stddef.h>
- #include <time.h>
- int randomazer (int max, int min){
- float random;
- random = rand();
- random = (random / RAND_MAX) * (max-min) + min;
- return((int)random);
- }
- void swap (int *a1, int *a2){
- int tmp = *a1;
- *a1 = *a2;
- *a2 = tmp;
- }
- void Max_Heapify (int *A, int i, int N){
- int l, r, largest = i;
- l = 2*i + 1;
- r = 2*i + 2;
- if ((l < N) && (A[l] > A[largest])){
- largest = l;
- }
- else{
- largest = i;
- }
- if ((r < N) && (A[r] > A[largest])){
- largest = r;
- }
- if(largest != i){
- swap (&A[i], &A[largest]);
- Max_Heapify (A, largest, N);
- }
- }
- void Build_Max_Heap (int *A, int N){
- int i;
- for (i = N/2-1; i >= 0; i--){
- Max_Heapify (A, i, N);
- }
- }
- void Heapsort (int *A, int N){
- int i;
- Build_Max_Heap (A, N);
- for (i = N-1; i >= 0; i--){
- swap (&A[0], &A[i]);
- Max_Heapify (A, 0, i);
- }
- }
- int main (void){
- srand(time(NULL));
- int N, i;
- scanf ("%d", &N);
- int A[N+1];
- for (i=0 ; i<N ; i++){
- A[i] = randomazer (0, 100);
- //printf ("%d ", A[i]);
- }
- printf ("\n");
- clock_t start = clock ( ) ;
- Heapsort (A, N);
- clock_t end= clock ( ) ;
- float seconds = ( float ) ( end - start ) / CLOCKS_PER_SEC;
- //for (i=0 ; i<N ; i++){
- //printf ("%d ", A[i]);
- //}
- printf (" \n");
- printf ("%f ", seconds); // 100000(200000) - 0,016,
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement