Как реализовать сортировку вставками на C с примером

Kak Realizovat Sortirovku Vstavkami Na C S Primerom



Алгоритм сортировки, известный как «Сортировка вставками», прост и эффективен для небольших наборов данных. Это метод, основанный на сравнении, который упорядочивает элементы, перебирая массив, оценивая каждый элемент по сравнению с предыдущими и заменяя их при необходимости. В этом посте мы рассмотрим пример реализации сортировки вставками на языке C.

Что такое сортировка вставками в C?

Метод сортировки, называемый сортировкой вставками, сопоставляет каждый отдельный элемент с соседними при переборе массива. Меньший элемент, чем тот, который был до того, как он был вставлен в отсортированный подмассив в соответствующем месте.

Чтобы еще больше проиллюстрировать это, я продемонстрировал пример, в котором я рассматривал массив из четырех элементов в таком массиве, как обр[]= {5, 4, 60, 9} и мы хотим отсортировать этот элемент в порядке возрастания с помощью сортировки вставками. Следующие взаимодействия объясняют полный пробный запуск сортировки вставками:







Итерация 1

5 4 60 9

У нас есть массив как arr[5, 4, 60, 9] теперь, в первой итерации сортировки вставками мы сначала сравниваем первые два элемента, такие как 5 и 4, поскольку arr[5] > arr[4], поэтому мы меняем их местами, чтобы отсортировать массив в порядке возрастания. Теперь массив будет:



4 5 60 9

Итерация 2

4 5 60 9

Во второй итерации мы сравниваем следующие два элемента, например, arr[5] с arr[60].



Так как arr[5] < arr[60] свопинг не происходит, так как он уже отсортирован в порядке возрастания. Теперь массив становится:





4 5 60 9

Итерация 3

4 5 60 9

Как и в третьей итерации, мы сопоставляем третий и четвертый элементы, такие как arr[60], с arr[9].

Теперь мы видим, что arr[60] > arr[9] поэтому происходит подкачка, тогда массив будет отсортирован в порядке возрастания.



4 5 9 60

Вот как работает сортировка вставками в C, которая легко сортирует элемент массива в порядке возрастания или убывания.

Блок-схема сортировки вставками

Ниже приведена блок-схема алгоритма сортировки вставками:

Реализация примера сортировки вставками на C

Сначала нам потребуется набор элементов, которые необходимо отсортировать в порядке убывания и возрастания, чтобы построить метод сортировки вставками в C. Предположим для целей этого примера, что мы имеем дело с массивом чисел. {5, 4, 60, 9} :

#include

пустота вставки sort_ascending ( инт обр1 [ ] , инт н ) {

инт я , Дж , мой ключ ;

// цикл for используется для перебора значений i от 1 до i

для ( я '=' 1 ; я < н ; я ++ ) {

мой ключ '=' обр1 [ я ] ;

Дж '=' я - 1 ;

пока ( Дж >= 0 && обр1 [ Дж ] > мой ключ ) {

обр1 [ Дж + 1 ] '=' обр1 [ Дж ] ;

Дж '=' Дж - 1 ;

}

обр1 [ Дж + 1 ] '=' мой ключ ;

}

}

пустота вставки sort_descending ( инт обр2 [ ] , инт м ) {

инт я , Дж , мой ключ ;

// создается еще один цикл for для перебора значений i от 1 до i

для ( я '=' 1 ; я < м ; я ++ ) {

мой ключ '=' обр2 [ я ] ;

Дж '=' я - 1 ;

пока ( Дж >= 0 && обр2 [ Дж ] < мой ключ ) {

обр2 [ Дж + 1 ] '=' обр2 [ Дж ] ;

Дж '=' Дж - 1 ;

}

обр2 [ Дж + 1 ] '=' мой ключ ;

}

}

инт основной ( ) {

// Сортировка вставками по убыванию

инт my_arr [ ] '=' { 5 , 4 , 60 , 9 } ; //инициализируем my_arr[] с четырьмя значениями

инт м '=' размер ( my_arr ) / размер ( my_arr [ 0 ] ) ;

вставки sort_descending ( my_arr , м ) ;

printf ( 'Отсортированный массив в порядке убывания: ' ) ;

для ( инт я '=' 0 ; я < м ; я ++ )

printf ( '%д' , my_arr [ я ] ) ;

printf ( ' \n ' ) ;

// Сортировка вставками по возрастанию

инт н '=' размер ( my_arr ) / размер ( my_arr [ 0 ] ) ;

вставки sort_ascending ( обр2 , н ) ;

printf ( 'Отсортированный массив в порядке возрастания: ' ) ;

для ( инт я '=' 0 ; я < н ; я ++ )

printf ( '%д' , my_arr [ я ] ) ;

printf ( ' \n ' ) ;

возвращаться 0 ;

}

В этом коде два метода вставки sort_descending () , и вставки sort_ascending () взять значения массива my_arr[] . Затем код использует для петли для перебора элементов массива.

Мы вызываем обе функции в основной функции после того, как они отсортировали массивы в порядке убывания и возрастания. После этого циклы for используются для печати отсортированного массива.

Когда мы запускаем эту программу, ожидаемый результат помещается ниже:

Заключение

Сортировка вставками — это быстрый и простой способ сортировки массива по убыванию или возрастанию. Для небольших наборов данных этот метод сортировки работает хорошо. Как вы можете видеть в приведенном выше руководстве, просто реализовать пример программы на C, чтобы легко понять сортировку вставками как в порядке убывания, так и в порядке возрастания.