Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Напишите программу, которая сортирует массив по возрастанию "методом камня": аналогично "методу пузырька", но в обратном порядке: самый "тяжелый" элемент из оставшихся спускается к концу массива.
- Входные данные
- Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 .
- Выходные данные
- Программа должна выводить весь массив после каждой перестановки элементов. Все элементы массива выводятся в одну строку и разделяются пробелами, после окончания вывода массива выполняется переход на новую строку. Если перестановок не было, программа выводит только число 0.
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- void voido(int* A,int a,int b)
- {
- int i,c,f,e,h,l,k=0;
- for(c=0;c<a-1;c++)
- {
- e=A[0];
- f=0;
- for(i=1;i<a-c;i++)
- {
- if(e<A[i])
- {
- e=A[i];
- f=i;
- }
- }
- for(e=f;e<a-c-1;e++)
- {
- k=1;
- h=A[e+1];
- A[e+1]=A[e];
- A[e]=h;
- for(l=0;l<a;l++)
- {
- printf("%d ",A[l]);
- }
- printf("\n");
- }
- }
- if(k==0)
- {
- printf("0");
- }
- return ;
- }
- int main(void)
- {
- int a,i,b;
- int* A;
- scanf("%d ",&a);
- A=(int *) malloc(a*sizeof(int));
- for(i=0;i<a;i++)
- {
- scanf("%d ",&A[i]);
- }
- scanf("%d " ,&b);
- voido(A,a,b);
- free(A);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement