Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Malloc. Двумерные массивы http://www.cyberforum.ru/cpp-beginners/thread670260.html
Всем привет. Выделяем динамическую память. 1) int *M=(int*)malloc(sizeof(int)*N*N) 2) int **M=(int **)malloc(N*sizeof(int*) for (int i=0; i<N; i++) M = (int*) malloc (N*sizeof(int)
C++ Работа с битами , массивы, (задачки) 1. Ввести последовательность из 8 символов. Если символ - буква, то заменить в нём 3-й бит нулем, иначе – заменить 2-й бит единицей. Вывести исходную последовательность и её восьмеричные коды; преобразованную последовательность и её восьмеричные коды. 2. Даны действительные числа a1, ..., a20. Получить числа b1, ..., b20, где bi*– среднее арифметическое всех членов последовательности a1, ...,... http://www.cyberforum.ru/cpp-beginners/thread670257.html
C++ Найти количество элементов последовательности, кратных числу K
Помогите плиз.Задача по инфе.Программирование. Дана последовательность из n целых чисел.Найдите количество элементов этой последовательности,кратных числу K.
Как сделать, чтобы выдавал ошибку при вводе букв и элемента меньшего, чем 0? C++
Т.е. пользователь ввёл данные, если это текст, то выдаётся ошибка. Если пользователь ввёл число меньше нуля, то ошибка?
C++ Вывести таблицу значений функции и ее разложения в ряд http://www.cyberforum.ru/cpp-beginners/thread670250.html
C++ как понять задачу(объясните пожалуйста) и какие операторы можно использовать кроме For Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для x, изменяющегося от a до b с шагом h = (b – a)/10
C++ на с++ нужно написать функцию с глобальными объектами пишу сюда впервые нужно написать программу для вычисления температуры смеси жидкости. Вычислительную часть алгоритма оформить как функцию без параметров и без возвращаемого значения. Другую часть алгоритма оформить как функцию main(), вызывающую вычислительную функцию. Обмен данными между функциями организовать через глобальные объекты. код такой #include <iostream> #include <conio.h>... подробнее

Показать сообщение отдельно
ogcjm
0 / 0 / 0
Регистрация: 22.09.2012
Сообщений: 34

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

13.10.2012, 17:25. Просмотров 536. Ответов 3
Метки (Все метки)

На algolist нашёл исходник (вопросы после исходников):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template<class T>
void selectSort(T a[], long size) {
  long i, j, k; 
  T x;
 
  for( i=0; i < size; i++) {    // i - номер текущего шага
    k=i; x=a[i];
 
    for( j=i+1; j < size; j++)  // цикл выбора наименьшего элемента
      if (  a[j] < x ) {
        k=j; x=a[j];            // k - индекс наименьшего элемента
      }
 
    a[k] = a[i]; a[i] = x;      // меняем местами наименьший с a[i]
  }
}
Нашёл ещё и 2-ой вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void select_my(int nums[], int size){
    int i, j;     //управляющие переменные
    int minPtr;   //индекс минимального элемента в массиве
 
    for(i = 0; i < size - 1; i++){   //внешний цикл
        minPtr = i + 1;
        for(j = i + 2; j < size; j++)   //внутренний цикл
            if(nums[j] < nums[minPtr])
                minPtr = j;
        if(nums[minPtr] < nums[i])
            swap(nums[minPtr], nums[i]);
    }
}
Вот вопросы:
1. Мне кажется 1 - ый алгоритм написан некоректно, т.к. количество проходов внешнего цикла на 1 больше, чем надо. Во вторых , мне кажется там слишком много присваиваний? Правильно ли я думаю, что алгоритм написан плохо?
2. Правильно ли сделано, что внутренний цикл начинается с индекса i + 2?

3. Какой из этих исходников можно использовать? А какой отбросить?
Или искать другую реализацию?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru