0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 42
1

Сортировка выбором с подсчётом (недоработки)

23.09.2018, 22:02. Показов 499. Ответов 3
Метки нет (Все метки)

Необходимо осуществить сортировку выбором с подсчётом(у меня в коде другой реализован другой метод и то криво), помогите сделать сортировку этим методом. Бывает такая беда, как на скриншотах. И ещё хотелось бы, чтобы отсортированный массив выводился в строку"Сортировка"
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
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for (int i=StringGrid1->FixedCols;i<StringGrid1->ColCount; i++)
 StringGrid1->Cols[i]->Clear();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int j;
   for (j=1; j<11; j++) // init
      StringGrid1->Cells[j][1] = IntToStr(random(100));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1Click(TObject *Sender)
{
StringGrid1->Options = StringGrid1->Options << goEditing;
StringGrid1->Cells[0][0] = "Индкексы";
StringGrid1->Cells[0][1] = "Ключи";
StringGrid1->Cells[0][2] = "Сортировка";
StringGrid1->Cells[1][0] = "0";
StringGrid1->Cells[2][0] = "1";
StringGrid1->Cells[3][0] = "2";
StringGrid1->Cells[4][0] = "3";
StringGrid1->Cells[5][0] = "4";
StringGrid1->Cells[6][0] = "5";
StringGrid1->Cells[7][0] = "6";
StringGrid1->Cells[8][0] = "7";
StringGrid1->Cells[9][0] = "8";
StringGrid1->Cells[10][0] = "9";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1KeyPress(TObject *Sender, char &Key)
{
 if ((Key >= '0') && (Key <= '9') || Key==VK_BACK || Key==VK_RETURN) {}
  else if ( (Key == ',') || (Key == '-')) {}
  else Key = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
int j;
AnsiString temp;
 
for (j=1; j<11; j++)
      if(StringGrid1->Cells[j][1] >= StringGrid1->Cells[j+1][1])
      {
      temp =  StringGrid1->Cells[j][1];
      StringGrid1->Cells[j][1] = StringGrid1->Cells[j+1][1];
      StringGrid1->Cells[j+1][1] = temp;   }
}
//---------------------------------------------------------------------------
Миниатюры
Сортировка выбором с подсчётом (недоработки)   Сортировка выбором с подсчётом (недоработки)  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2018, 22:02
Ответы с готовыми решениями:

Сортировка на С линейным выбором и подсчётом
#include &lt;stdio.h&gt; #include &lt;time.h&gt; int k=0; int c=0; // число сравнений const int m = 10;...

Сортировка массива линейным выбором с подсчетом
Необходимо отсортировать массив х при помощи линейного выбора с подсчетом #include &lt;iostream&gt;...

Сделать тест с выбором ответов и подсчетом правильных
Ребят, подскажите, пожалуйста, девушке как сделать тест, есть несколько вариантов теста, по 10...

Страничка с выбором тарифного плана и подсчётом итоговой суммы заказа
Всем привет! помогите создать мне плз страничку выбором тарифного плана и подсчетом суммы (итого)...

3
51 / 39 / 15
Регистрация: 20.09.2018
Сообщений: 163
24.09.2018, 07:20 2
У тебя должен быть цикл в цикле. Вот пример сортировки строк. Переделай на числа:
C++
1
2
3
4
5
6
7
8
9
10
11
for(t=0;t<TimeStrings->Count;t++)
{
    //Ищем минимальную строку и перемещаем ее в начало
    for(m=t+1;m<TimeStrings->Count;m++)
    {
        if(TimeStrings->Strings[t].Compare(TimeStrings->Strings[m])>0)
        {
            TimeStrings->Exchange(t,m);
        }
    }
}
0
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 42
25.09.2018, 00:50  [ТС] 3
Всё равно не красиво получается или я не понимаю что нужно сделать.(И это сортировка методом пузырька? или нет)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm1::Button3Click(TObject *Sender)
{
int j,i;
AnsiString temp;
 
      for (j=1; j<11; j++)
      {
       for(i=j+1;i<11;i++)
       {
          if(StringGrid1->Cells[j][1] >= StringGrid1->Cells[j+1][1])
      {
      temp =  StringGrid1->Cells[j][1];
      StringGrid1->Cells[j][1] = StringGrid1->Cells[j+1][1];
      StringGrid1->Cells[j+1][1] = temp;   }
       }
      }
0
51 / 39 / 15
Регистрация: 20.09.2018
Сообщений: 163
25.09.2018, 07:35 4
Да, это пузырек. "Не красиво получается" - то есть не сортирует? Или код некрасивый?
Ты сравниваешь строки:
C++
1
if(StringGrid1->Cells[j][1] >= StringGrid1->Cells[j+1][1])
А строка и число это разные вещи. Полагаю, что у тебя ничего не сортируется, тебе надо сравнивать числа в строковом представлении так:
C++
1
if(StringGrid1->Cells[j][1].ToInt() >= StringGrid1->Cells[j+1][1].ToInt())
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2018, 07:35

Сортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом ("пузырьковая" сортировка)
Создать класс, содержащий массив и реализующий алгоритмы сортировки и бинарного поиска в этом...

Сортировка подсчетом и LSD сортировка
Кто может дать реализацию сортировки подсчетом и lsd сортировки на C?

Сортировка подсчетом
Вам на электронную почту прислали сводный список товаров от нескольких Интернет-магазинов. Так как...

Сортировка подсчетом
Дан список из N (N≤2*10⁵) элементов, которые принимают целые значения от 0 до 100. Отсортируйте...


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

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

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