кодесурса
«C

Упражнения C: сортировка чисел с использованием метода сортировки Bogo

script1adsense2code
script1adsense3code

Алгоритм поиска и сортировки при программировании на C: упражнение 14 с решением

Напишите программу на C, которая сортирует числа, используя метод сортировки Bogo.

В информатике Bogo Sort - это особенно неэффективный алгоритм сортировки, основанный на парадигме генерации и тестирования. Алгоритм последовательно генерирует перестановки своего ввода, пока не найдет отсортированный. Это не полезно для сортировки, но может использоваться в образовательных целях, чтобы противопоставить его другим более реалистичным алгоритмам.

Пример решения:

Образец кода C:

// https://bit.ly/2rcvXK5
#include  <stdio.h>  
#include <stdlib.h>
#include <stdbool.h>
 
bool is_sorted(int *a, int n)
{
  while ( --n >= 1 ) {
    if ( a[n] < a[n-1] ) return false;
  }
  return true;
}
 
void shuffle(int *a, int n)
{
  int i, t, r;
  for(i=0; i < n; i++) {
    t = a[i];
    r = rand() % n;
    a[i] = a[r];
    a[r] = t;
  }
}
 
void bogosort(int *a, int n)
{
  while ( !is_sorted(a, n) ) shuffle(a, n);
}
 
int main()
{
  int x[] = { 1, 10, 9,  7, 3, 0 };
  int i;
  int len = sizeof(x)/sizeof(x[0]);
  printf("Original Array:\n");
  for (i = 0; i < len; i++)
  printf("%d%s", x[i], i == len - 1 ? "\n" : " ");  
  printf("\nSorted Array:\n");
  bogosort(x, 6);
  for (i=0; i < 6; i++) printf("%d ", x[i]);
  printf("\n");
}

Пример вывода:

 Оригинальный массив:
1 10 9 7 3 0
Сортированный массив:
0 1 3 7 9 10 

Блок - схема:

«Блок-схема:

Редактор кода программирования C:

Улучшите этот пример решения и опубликуйте свой код через Disqus.

Предыдущий: Напишите программу на C, которая сортирует числа, используя метод сортировки по бисеру.
Далее: Напишите программу на C, которая сортирует числа, используя метод Cocktail Sort.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code