Advertisement
neron476

опт. версия

Nov 19th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include "omp.h"
  5. //int array[N];
  6. #define N 5
  7. int main(int argc, char **argv)
  8. {
  9. int *array =(int*)malloc(N * sizeof(int));
  10. for (int i = 0; i < N; array[i] = N - i - 1, ++i);
  11. for (int i = 0; i < N; printf("%d ", array[i++]));
  12. //for (int i = 0; i < 10; i++ )
  13. //{
  14. // printf("%d %d %d\n", array[i],array[i+N/2],array[N - 10+i]);
  15. // }
  16. double t1, t2;
  17. // OddEvenSort(array);
  18. int sorted = 0;
  19. t1 = omp_get_wtime();
  20. int i;
  21. while(!sorted)
  22. {
  23. sorted = 1;
  24. // #pragma omp parallel for
  25. for(i = 1; i < N - 1; i += 2)
  26. {
  27. if(array[i] > array[i+1])
  28. {
  29. int buf = array[i];
  30. array[i] = array[i + 1];
  31. array[i + 1] = buf;
  32.  
  33. sorted = 0;
  34. }
  35. }
  36. // #pragma omp parallel for
  37. for( i = 0; i < N - 1; i += 2)
  38. {
  39. if(array[i] > array[i+1])
  40. {
  41. int buf = array[i];
  42. array[i] = array[i + 1];
  43. array[i + 1] = buf;
  44.  
  45. sorted = 0;
  46. }
  47. }
  48. }
  49. t2 = omp_get_wtime();
  50. printf("\n==========================\n");
  51. for (int i = 0; i < N; printf("%d ", array[i++]));
  52. //for (int i = 0; i < 10; i++ )
  53. //{
  54. // printf("%d %d %d\n", array[i],array[i+N/2],array[N - 10+i]);
  55. // }
  56. printf("Время: %f\n", t2 - t1);
  57. return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement