Код для сортировки (Прямой метод вставки) - C (СИ)
Формулировка задачи:
Етот кусок кода надо доработать чтобы сортировал как надо.Тут используется Прямой метод вставки
Как он раблтает , к примеру a[0],a[1],......,a[i-1] уже отсортированы по возрастающей, и ищется место a[i] в последовательности.Пойск производится от a[i-1] до a[0]. Если j индекс для которого (j=-1;i;a[-1] = -Бесконечность);
a[ j ]\leq a[ i ] < a [ j + 1] тогда все элементы [ j + 1], a [j + 2],…,a[ i - 1] перемещается на одну позицию вправо и в J + 1 свободную позицию вставляется элемент a[i].
Используите етот процесс для i от 1 до n - 1 и так последовательности отсортируется по возрастающей.
Если кто понимает как сделать помогите.
Спасибо зарание за помощь.
void sortinsdir (float * a, unsigned n) { int i, j ; float temp ; for (i = 1 ; i < n ; i ++) { temp = * (a + i); for ( j = i - 1 ; j > =0 ; j --) if (* (a + j) > temp) *(a+j+1) = *(a+j); else { *(a+j+1) = temp; go to sf; } *a = temp; sf : ; } }
Решение задачи: «Код для сортировки (Прямой метод вставки)»
textual
Листинг программы
void insertSort(int* a, int size) { int i, j, tmp; for (i = 1; i < size; ++i) // цикл проходов, i - номер прохода { tmp = a[i]; for (j = i - 1; j >= 0 && a[j] > tmp; --j) // поиск места элемента в готовой последовательности a[j + 1] = a[j]; // сдвигаем элемент направо, пока не дошли a[j + 1] = tmp; // место найдено, вставить элемент } }
Объяснение кода листинга программы
- Входные данные:
- a - указатель на массив, который нужно отсортировать
- size - размер массива
- Создаем переменные:
- i - номер прохода
- j - индекс элемента в готовой последовательности
- tmp - временная переменная для хранения элемента
- Начинаем цикл проходов с i = 1 до size.
- В каждой итерации:
- Сдвигаем все элементы справа от текущего элемента на одну позицию вправо.
- Вставляем текущий элемент в правильное место в отсортированной части массива.
- Возвращаем отсортированный массив.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д