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

Сортировка вставками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка. Переопределение параметров в функции http://www.cyberforum.ru/cpp-beginners/thread642702.html
Добрый вечер всем! Такая задача: Необходимо составить программу для систем счисления (от 2 до 36) пользователь вводит число в десятичной системе и вводит номер системы. например: число 350 в 8-ричной системе. Программу надо написать через функцию. Сначала я написал через обычную пустую функцию (одним куском кода)-ВСЁ ОТЛИЧНО РАБОТАЕТ. Необходимо написать так что бы сначала шол код...
C++ что означает данная строчка? &operator что это означает? (Tabl это класс) friend ofstream &operator << ( ofstream &outf, Tabl MyTabl ) я так понимаю объявляется дружественная функция перегрузки оператора ввода? можете еще объяснить что происходит ( ofstream &outf, Tabl MyTabl ) понимаю что создается объект класса Tabl но для чего? что значит ofstream &outf как это все взаимодействует? Заранее огромное Спасибо! http://www.cyberforum.ru/cpp-beginners/thread642696.html
Сравнение трех чисел ограниченными средствами C++
У Дейтела после первой главы, где рассматриваются основы процедурного программирования, есть небольшой блок задач для самостоятельного решения. Среди них - написать программу, запрашивающую у пользователя 3 не одинаковых целых числа, а после выдающей наибольшее и наименьшее из них ( чуть далее следует схожая задача на пять чисел). Пользоваться можно только изученным до этого материалом, а значит,...
Поиск анаграмм в словаре C++
Учу С++ по учебнику, там есть задача по написанию программы для поиска анаграмм(слов из одинаковых букв) и выводу их на экран. Столкнулся с проблемой: не выводится ничего. Судя по тому что при пошаговом прогоне отрицательно проверяется строка 30 проблема в вводе, но где именно я так и не понял :( #include <iostream> #include <vector> #include <fstream> #include <map> #include <algorithm>...
C++ Перейти из левого нижнего в правый верхний угол массива, двигаясь вверх либо вбок, суммируя элементы через которые идем. Сумма должна быть минимальной http://www.cyberforum.ru/cpp-beginners/thread642653.html
Помогите составить алгоритм реализации такой программы. Например, есть массив: 1 2 5 7 9 4 6 8 2 1 3 9 7 5 2 Cчитаем сумму для 3: + т.е 3+4 и записываем в массив 2. Потом + т.е 3+9 и тоже записываем в массив 2. То же проделываем для 4 и 9, 1 и 6 и 7 ну и т.д. Но это очень приблизительно. А составить нормальный алгоритм не получается.
C++ подпрограмма Всем привет я тут все выполнил задания, учитель сказал где то ошибка !! подскажите где косяк ? #include "stdafx.h" #include <iostream> #include <ctime> #include <iomanip> #include <stdio.h> #include <stdlib.h> подробнее

Показать сообщение отдельно
ovli
0 / 0 / 0
Регистрация: 04.08.2012
Сообщений: 16
05.09.2012, 12:49     Сортировка вставками
Доброго времени суток, не могу понять как работает код сортировки вставками, пришлось зубрить, а я этого органически не перевариваю, кто нибудь может помочь...
C++
1
2
3
4
5
6
7
8
9
10
11
12
void insertSort(T a[],int size)
{
T x;
int i,j;
for(i=0;i<size;i++)
{
    x=a[i];
    for(j=i-1;j>=0&&a[j]>x;j--)
        a[j+1]=a[j];
    a[j+1]=x;
}
}
1. входим в первый цикл и присваиваем переменной х значение элемента стоящего под № 0 ноль
2. Смотрим на второй цикл и сразу возникает вопрос: почему он без фигурных скобок?
3. Проверяем условие цикла 2, и видим при i=0 j=i-1 j=-1...условие цикла 2 не выполнено и не выполняется никаких действий.
4. Происходит возврат к циклу 1 и становится равным i=1
5. x присваивается x=a[1]
6. смотрим цикл N 2 j=1-1, соответственно j=0, тогда выполняется часть условия j>=0&&a[j]>x, и допустим, что a[j]>x, т.е впереди стоящий элемент больше следующего, будем считать условие выполнено
7.a[j+1]=a[j] элементу a[j+1] присваивается значение a[j] и что по сути равносильно a[i]=a[j] ведь i на одну единицу больше j, а затем a[j+1]=x присваевается значение х, и тут получается абракадабра, или все возвращается назад, a[j+1] присваевается значение предидущее значение a[j+1]...Потом j уменьшается на 1
Короче не фига не понял
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru