Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Вероника99
5 / 5 / 1
Регистрация: 16.12.2013
Сообщений: 450
#1

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

12.12.2016, 21:57. Просмотров 276. Ответов 1
Метки нет (Все метки)

Добрый вечер. Скиньте пожалуйста пример быстрой сортировки массива строк и сортировки массива строк методом выбора. Очень срочно надо, спасибо
C++
1
2
3
4
5
6
7
8
9
10
11
char str_sorted[SIZE][LENGTH]; 
    char** str=(char**) malloc(sizeof(char *)* size); //Creating required string stray
    printf("\nEnter strings ");
    int i;
    for(i=0;i<size;i++)
    {
        str[i]=(char*)malloc(sizeof(char)*LENGTH);
        printf("\nEnter string: ");
        scanf("%s",str[i]); 
 
    }
Добавлено через 5 минут
Выбором:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void choicesSort (char str_sorted[SIZE][LENGTH]) //сорт
{ 
  int i, j, k; 
  char temp; 
 
  for (i = 0; i < SIZE; i++) { 
   for (j = 0; str_sorted[i][j] != '\0'; j++) { 
    for (k = j + 1; str_sorted[i][k] != '\0'; k++) 
     if (str_sorted[i][j] > str_sorted[i][k]) { 
      temp = str_sorted[i][j]; 
      str_sorted[i][j] = str_sorted[i][k]; 
      str_sorted[i][k] = temp; 
     } 
   } 
  } 
   
  return; 
}
Добавлено через 2 часа 33 минуты
Быстрая сортировка
Почему не работает,не могу понять
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
void QuickSort_alpha(char *mas[], int left, int right) //швидке сортування
{   
        int i, j, p;
        char *tmp[SIZE];
    i=left; 
    j=right;        
    while (i!=j){
        if((strcmp(mas[i],mas[j])>0)!=(i>j)){       
                        tmp[i]=mas[i];      
            mas[i]=mas[j];
                mas[j]=tmp[i];
            
            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_alpha(mas,left,i-1);
    if (i+1<right) 
        QuickSort_alpha(mas,i+1,right);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2016, 21:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пример быстрой сортировки массива строк и сортировки методом выбора (C++):

Отсортировать методом быстрой сортировки элементы массива, стоящие на четных позициях - C++
Имеется одномерный массив длиной N = 50. Отсортировать методом быстрой сортировки элементы массива, стоящие на четных позициях, так, чтобы...

Составить программу сортировки одномерного числового массива от начала массива к элементу с заданным номером по убыванию (методом выбора) - C++
Помогите составить программу на С++. Заданный номер - 28.

Сортировка последовательности методом быстрой сортировки - C++
помогите :Написати програму для сортування послідовності 45 37 2 5 9 12 6 4 52 методом швидкого сортування. На кожному кроці виводити...

Сортировка координат (методом быстрой сортировки) - C++
Как отсортировать координаты сначала по x, а при равных x по y, методом быстрой сортировки? Если отсортировать по x, а затем по y, можем...

Алгоритмом быстрой сортировки строк - C++
Необходимо отсортировать дату,она же char, по возрастанию. void q_sort(Medicament m, int f, int l){ int i = f, j = l; char...

Комбинированный метод быстрой сортировки с методом «пузырька» - C++
Выполнить сортировку целочисленного массива (поиск в массиве) из n элементов. Алгоритм сортировки (поиска) оформить в виде функции. ...

1
MyNameRayhorn
0 / 0 / 0
Регистрация: 22.08.2015
Сообщений: 4
06.04.2017, 12:39 #2
Привет, в строках 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2017, 12:39
Привет! Вот еще темы с ответами:

Динамический массив отсортировать по возростанию методом быстрой сортировки - C++
Отсортировать дин. масив по возростанию методом быстрой сортировки.

Заполнить массив случайными числами и отсортировать его методом быстрой сортировки по убыванию - C++
Написать программу на с++ которая заполняет массив случайными числами и сортирует их методом быстрой сортировки ,за направлением убывания ....

Составить программы для пузырьковой сортировки и сортировки посредством выбора с применением оператора while - C++
Доброго времени суток, очень нужна ваша помощь в решении данной проблемы, буду бесконечно благодарен. Составить программы для пузырьковой...

Процедура сортировки методом выбора. - C++
в общем такое дело, помогли мне здесь с самой процедурой, но вот проблема, я написала тело программы, где пользователь должен ввести массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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