Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <time.h>
- #include <stdio.h>
- #include <stdlib.h>
- int swap_arr_element(int mas[],int x,int y);
- int quicksort(int mas1[],int n);
- int scan_sort(int mas[],int n);
- int main ()
- {
- srand(time(NULL));
- int i,x,n;
- printf("Vvedit` kilkist elementov masiva\r\n");
- //scanf("%d",&n);
- int mas2[]={7,2,4,7,3,1,4,6,8,8,3,9,2,6,7,6,3};
- /*for (i=0;i<n;i++) //
- { //
- x=1+((rand( )%10)*rand( )%10)%10; //Генерує масив
- mas2[i]=x; //
- } //
- */ //
- for (i=0;i<17;i++) //
- { //Виписує згенерований масив
- printf("%d ",mas2[i]); //
- } //
- *mas2=quicksort(mas2,17);
- printf("\r\n");
- for (i=0;i<17;i++) //
- { //Виписує
- printf("%d ",mas2[i]); // посортований
- } // масив
- return 0;
- }
- int swap_arr_element(int mas[],int x,int y)
- {
- /* Міняє елементи масива*/
- int temp=mas[x];
- mas[x]=mas[y];
- mas[y]=temp;
- return *mas;
- }
- int quicksort(int mas1[],int n)// n -dlina masiva)
- { /*|__________________|*/
- /*|Функція сортування|*/
- /*|__________________|*/
- int i=0,k=0;
- int pivot_index=(int)n/2,j=0;
- *mas1=swap_arr_element(mas1,pivot_index,n-1);
- pivot_index=n-1;
- for(i=0;i<n-1;i++)
- {
- if(mas1[i]<mas1[pivot_index])
- {
- *mas1=swap_arr_element(mas1,i,j);
- j=j+1;
- }
- }
- *mas1=swap_arr_element(mas1,pivot_index,j);
- pivot_index=j;
- int mas2[n-j];
- for(i=0;i<n-j-1;i++)
- {
- mas2[i]=mas1[i+j+1];
- }
- //if (n-j>0) *mas2=quicksort(mas2,n-j);
- if (j>0) *mas1=quicksort(mas1,j);
- //if (n>j)
- return *mas1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement