Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Возведение в степень вводимого числа https://www.cyberforum.ru/ cpp-beginners/ thread1876159.html
int _tmain() {float t, A; cin>>t>>A; float b=t+A; float a=pow(b,1.0/3.0); cout<<a; getch (); return 0; } Пытаюсь получить кубический корень от b, pow подчеркивается. Ошибка,...
C++ Найдите ошибку, пожалуйста
Думаю что где-то в функции EndLine(). Уверен, что она маленькая и глупая :-| Вот код: Файл.h #pragma once #define MAX_DEGREE 340 #define MAX_LINE 4 struct Pos { float x, y;
Переставить столбцы в матрице по возрастанию сумм элементов в столбцах C++
Дана разреженная матрицы общего вида(CSS или CSR). Переставить столбцы в матрице по возрастанию сумм элементов в этих столбцах.
C++ Задан орграф. Найти все циклы длинны N Задан орграф. Найти все циклы длинны N. https://www.cyberforum.ru/ cpp-beginners/ thread1876153.html
C++ Программирование процессов обработки наборов с неоднородной информации https://www.cyberforum.ru/ cpp-beginners/ thread1876151.html
Добрый вечер. Сейчас разбираю над своим заданием, но, честно признаться, с такого рода программами работаю впервые и не знаю, как написать. Кому не сложно, помогите с написанием, заранее спасибо. ...
C++ Двудольный граф
Проверить граф заданный матрицей смежности на двудольность и вывести одну из его долей
слияние последовательностей C++
Дано n упорядоченных по возрастанию последовательностей целых чисел, каждая из которых имеет длину m. Необходимо слить их в одну последовательность длины mn, также упорядоченную по возрастанию....
C++ сортировка расспределение передаю список с 10 елементов , но почему то не хочет собирать елементы с кошельков .. Помогите если не сложно . void sort(list *beg) { sorta *First0; sorta *First1; sorta *First2; sorta... https://www.cyberforum.ru/ cpp-beginners/ thread1876139.html
C++ Написать программу в С++ для ввода с клавиатуры матрицы https://www.cyberforum.ru/ cpp-beginners/ thread1876123.html
Написать программу в С++ для ввода с клавиатуры матрицы размера k*n (k<=20, n<=25) и ее обработки: записать в новый массив все строки, произведение элементов которых превосходит два. Результат...
C++ Написать программу, которая выполняет следующие действия одномерного массива: 1) позволяет вводить массив; 2) выполняет преобразование массива: Записать в отдельный массив элементы, которые превосходят среднее арифметическое значение максимального и минимального элементов... https://www.cyberforum.ru/ cpp-beginners/ thread1876120.html
0 / 0 / 0
Регистрация: 22.08.2015
Сообщений: 4
06.04.2017, 12:39 0

Пример быстрой сортировки массива строк и сортировки методом выбора

06.04.2017, 12:39. Просмотров 3034. Ответов 1
Метки (Все метки)

Ответ

Привет, в строках 9-11, там где быстрая сортировка, нужно вставить :
C
1
2
3
strcpy(tmp, strings[i]); 
strcpy(strings[i], strings[j]);
strcpy(strings[j], tmp);
Я недавно сдавал лабораторуную по чтению массива строк из файла, и его последующей сортировке, пользуйтесь:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
char strings[10][32], str[32];
 
void quickSort(int left, int right) 
{
    int i, j, p;
    i=left; 
    j=right;   
    char tmp[100];
         
    while (i!=j){
        if((strcmp(strings[i],strings[j])>0)!=(i<j))
        {        
            strcpy(tmp, strings[i]); 
            strcpy(strings[i], strings[j]);
            strcpy(strings[j], tmp);
            
            p=i;    
            i=j;        
          
            if (p<j)    
                j=p+1;
            else j=p-1;
        }
        else
        {
            if (i<j) j--; 
            else j++;
        };
    };
    
    if (left<i-1)
        quickSort(left,i-1);
    if (i+1<right) 
        quickSort(i+1,right);
}
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    FILE *f;
    int count = 0, i, j;
    if((f = fopen ("input.txt", "r")) == NULL){
        return 1;
    }
     
    while (feof(f) == 0 )
    {
        fgets (str,sizeof(str),f);
        strcpy(strings[count++], str);
    }
    fclose(f);
    
    for(i = 0; i < count; i++)
        printf("%s", strings[i]);  
    printf("\n");
    printf("\n");
    
    quickSort(0, count);
    
    for(i = 0; i < count + 1; i++)
    {
        printf("%s", strings[i]);
    }
    return 0;
}


Вернуться к обсуждению:
Пример быстрой сортировки массива строк и сортировки методом выбора
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2017, 12:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создать программу реализующую два алгоритма сортировки одномерного массива: методом Шелла и быстрой сортировки
ЗАДАЧА. Создать программу реализующую два алгоритма сортировки одномерного массива: сортировка...

Разработайте рекурсивную процедуру сортировки последовательности методом быстрой сортировки Хоара
Помогите!!!! Дана последовательность чисел a1, a2, ... , an. Разработайте рекурсивную процедуру...

Написать программу сортировки данных в массиве методом быстрой сортировки по возрастанию номеров маршрутов
Описать класс с именем Route, содержащий следующие поля: start (название начального пункта...

Разработать программу сортировки строк двумерного массива по возрастанию первого элемента методом выбора
Помогите пожалуйста выполнить это задание, никак не получается)))

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.