Код для сортировки (Прямой метод вставки) - 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; // место найдено, вставить элемент    
    }
}

Объяснение кода листинга программы

  1. Входные данные:
    • a - указатель на массив, который нужно отсортировать
    • size - размер массива
  2. Создаем переменные:
    • i - номер прохода
    • j - индекс элемента в готовой последовательности
    • tmp - временная переменная для хранения элемента
  3. Начинаем цикл проходов с i = 1 до size.
  4. В каждой итерации:
    • Сдвигаем все элементы справа от текущего элемента на одну позицию вправо.
    • Вставляем текущий элемент в правильное место в отсортированной части массива.
  5. Возвращаем отсортированный массив.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5
Похожие ответы