Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include<stdlib.h>
- void init_array(int *a,int n);
- void swapp (int *a, int n);
- void shake_sort (int *a, int n);
- void printff(int *a,int n);
- int main() {
- int n;
- printf("Введите размер массива:");
- scanf("%d",&n);
- srand(1234568);
- int a[n];
- init_array(a,n);
- printf("Элементы массива:\t");
- printff(a,n);
- shake_sort(a,n);
- printf("Отсортрованный массив:\t");
- printff(a,n);
- return 0;
- }
- void init_array(int *a,int n)
- {
- for(int i=0;i < n;i++)
- {
- a[i] = rand() % 100;
- }
- }
- void shake_sort (int *a, int n)
- {
- int left_mark = 0;
- int right_mark = n - 1 ;
- while (left_mark <= right_mark){
- for (int j = left_mark; j <= right_mark; j++){
- if(a[j - 1] > a[j])
- swapp(a,j);
- right_mark--;
- }
- for(int i = right_mark; i >= left_mark ; i-- ){
- if (a[i - 1] > a[i])
- swapp(a,i);
- left_mark++;
- }
- }
- }
- void swapp(int *a, int i)
- {
- int temp = a[i];
- a[i] = a[i - 1];
- a[i - 1] = temp;
- }
- void printff(int *a,int n){
- for (int i = 0; i < n; i++){
- printf("%d \t",a[i]);
- }
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement