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

Сортировка выборкой - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Difftime() должен возвращать тип double http://www.cyberforum.ru/cpp-beginners/thread1171378.html
#include <iostream> #include <ctime> #include <conio.h> using namespace std; int main() { time_t begin; time_t end;
C++ Для 10 сотрудников отдела: выполнить сортировку по убыванию номеров телефонов Дали очень красноречивое задание: Для 10 сотрудников отдела: выполнить сортировку по убыванию номеров телефонов Кто может это сделать? О_о http://www.cyberforum.ru/cpp-beginners/thread1171370.html
C++ Указатели у стеков на голову и следующий элемент всегда Unable to read memory
написал программу, которая информацию из бинарного дерева записывает в 2 стека, но почему-то указатели у стеков на голову и следующий элемент всегда Unable to read memory ... #include "stdafx.h" #include <iostream> #include <string> using namespace std; //Наша структура struct node {
Функция cleanup C++
Что это за функция такая - cleanup? зачем она нужна? И что означает она ,например, в записи : if (FALSE == a) { wprintf(L"failed.\n"); goto cleanup; }
C++ Из целочисленного массива Х(Н) записать в массив У(К) каждый второй элемент http://www.cyberforum.ru/cpp-beginners/thread1171330.html
Из целочисленного массива Х(Н) записать в массив У(К) каждый второй элемент. Удалить в каждом массиве наибольший и наименьший элементы. В программе написать функции формирование массива У, поиска номеров максимального и минимального элементов, удаления элемента. Ребят выручайте! Умоляю.... Задача жизни и смерти! Огромное Спасибо!
C++ Code Blocks и файл ресурсов Как приковать файл rc к программе в Code Blocks? Пытался по-разному: компилировал и встроенным компиляторомGNU GCC), и Resource Builder, а все равно ничего не получается. Помогите, пожалуйста. подробнее

Показать сообщение отдельно
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
10.05.2014, 14:53     Сортировка выборкой
Задача:
Сортировка выборкой анализирует массив, отыскивая наименьший элемент массива. Затем этот наименьший элемент обменивается местами с первым элементом массива. Процесс повторяется для подмассива, начинающегося со второго элемента массива. В результате каждого прохода один из элементов занимает соответствующее место. Эта сортировка по производительности сравнима с пузырьковой — для массива из п элементов нужно выполнить п — 1 проход, а для каждого подмассива нужно выполнить п - 1 сравнение для определения наименьшего значения. Когда обрабатываемый подмассив будет содержать только один элемент, значит массив отсортирован. Напишите рекурсивную функцию selectionSort, выполняющую этот алгоритм.

Решение:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
int selectionSort( int[ ], int );
 
int main()
{
    const int arraySize = 10;
    int a[ arraySize ] = { 4, 6, 5, 43, 78, 79, 42, 32, 1, 90 };
 
   return 0;
}
 
int selectionSort( int arr[ ], int sizeOfArray )
{
    static int counter = 0; // Считает количество рекурсий функции
    int lowest = arr[ counter ]; // Временно сохраняем наименьшее в произвольном эл.
    int temp;
    int position;
 
    for( int i = 0; i < sizeOfArray; i++ ) //Сканируем массив и ищем наименьшее
    {
        if( arr[ i ] < lowest )
        {
            lowest = arr[ i ]; 
            position = i;  //Запоминаем позицию наименьшего
        }
    }
 
    temp = arr[ counter ];    //
    arr[ counter ] = lowest;  // Меняем местами наименьшее и первый элемент
    arr[ position ] = temp;   //
 
    counter++;
 
    if( counter == sizeOfArray ) //Проверка условия. Если массив отсортирован
            return arr[ sizeOfArray ]; // Возвращаем массив
    else
        return selectionSort( arr[ sizeOfArray ], sizeOfArray ); // Иначе опять запускаем функцию
}
В результате компиляции выдает 2 ошибки в строчках:
C++
1
return selectionSort( arr[ sizeOfArray ], sizeOfArray );
C++
1
static int counter = 0;
Как их исправить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru