Advertisement
Guest User

Untitled

a guest
Nov 12th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. #include <time.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int swap_arr_element(int mas[],int x,int y);
  6. int quicksort(int mas1[],int n);
  7. int scan_sort(int mas[],int n);
  8.  
  9. int main ()
  10. {
  11. srand(time(NULL));
  12. int i,x,n;
  13. printf("Vvedit` kilkist elementov masiva\r\n");
  14. //scanf("%d",&n);
  15. int mas2[]={7,2,4,7,3,1,4,6,8,8,3,9,2,6,7,6,3};
  16. /*for (i=0;i<n;i++) //
  17. { //
  18. x=1+((rand( )%10)*rand( )%10)%10; //Генерує масив
  19. mas2[i]=x; //
  20. } //
  21. */ //
  22. for (i=0;i<17;i++) //
  23. { //Виписує згенерований масив
  24. printf("%d ",mas2[i]); //
  25. } //
  26. *mas2=quicksort(mas2,17);
  27. printf("\r\n");
  28. for (i=0;i<17;i++) //
  29. { //Виписує
  30. printf("%d ",mas2[i]); // посортований
  31. } // масив
  32. return 0;
  33. }
  34.  
  35.  
  36.  
  37. int swap_arr_element(int mas[],int x,int y)
  38. {
  39. /* Міняє елементи масива*/
  40. int temp=mas[x];
  41. mas[x]=mas[y];
  42. mas[y]=temp;
  43. return *mas;
  44. }
  45.  
  46. int quicksort(int mas1[],int n)// n -dlina masiva)
  47. { /*|__________________|*/
  48. /*|Функція сортування|*/
  49. /*|__________________|*/
  50. int i=0,k=0;
  51. int pivot_index=(int)n/2,j=0;
  52. *mas1=swap_arr_element(mas1,pivot_index,n-1);
  53. pivot_index=n-1;
  54. for(i=0;i<n-1;i++)
  55. {
  56. if(mas1[i]<mas1[pivot_index])
  57. {
  58. *mas1=swap_arr_element(mas1,i,j);
  59. j=j+1;
  60. }
  61. }
  62. *mas1=swap_arr_element(mas1,pivot_index,j);
  63. pivot_index=j;
  64. int mas2[n-j];
  65. for(i=0;i<n-j-1;i++)
  66. {
  67. mas2[i]=mas1[i+j+1];
  68. }
  69. //if (n-j>0) *mas2=quicksort(mas2,n-j);
  70. if (j>0) *mas1=quicksort(mas1,j);
  71. //if (n>j)
  72. return *mas1;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement