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

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

Восстановить пароль Регистрация
 
Sobaka_ru
2 / 2 / 0
Регистрация: 16.12.2010
Сообщений: 75
24.01.2012, 22:00     Сортировка массивом #1
Какой метод сортировки тут используется????
Можно ли как нибудь подстроить под метод подсчета???
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include "stdafx.h"
#include <conio.h>
#include <cstring>
#include <cstdio>
#include <iostream>
using namespace std;
 
const int N = 5;
struct Racer
{
 char name[40];
 int championship;
 int victories;
 int pole_pozition;
};
typedef Racer *pRacer;
 
//============================================
// Filling an array of structures.
Racer filling_struct(Racer ob[], const int N)
{
 strcpy(ob[0].name, "Fernando Alonso");
 ob[0].championship = 2;
 ob[0].victories = 32;
 ob[0].pole_pozition = 26;
 
 strcpy(ob[1].name, "Michael Shumacher");
 ob[1].championship = 7;
 ob[1].victories = 91;
 ob[1].pole_pozition = 67;
 
 strcpy(ob[2].name, "Lewis Hamilton");
 ob[2].championship = 1;
 ob[2].victories = 26;
 ob[2].pole_pozition = 19;
 
 strcpy(ob[3].name, "Felipe Massa");
 ob[3].championship = 0;
 ob[3].victories = 18;
 ob[3].pole_pozition = 15;
 
 strcpy(ob[4].name, "Sebastjan Vettel");
 ob[4].championship = 2;
 ob[4].victories = 28;
 ob[4].pole_pozition = 27;
 
 return *ob;
}
//============================================
// QuickSort.
void QuickSort(Racer ob[], int left, int right)
{
 pRacer p[5];
 for(int i=0; i<N; i++)
  p[i] = &ob[i];
 
 int i, j;
 int x;
 
 i = left; j = right;
 x = p[(left+right)/2]->victories;
 
 do
 {
    while((p[i]->victories < x) && (i < right)) i++;
    while((x < p[j]->victories) && (j > left)) j--;
 
    if(i <= j)
    {
       swap(p[i], p[j]);
       i++; j--;
    }
 }
 while(i <= j);
 
 if(left < j) QuickSort(ob, left, j);
 if(i < right) QuickSort(ob, i, right);
 
 FILE *fout;
 fout = fopen("C:\\Users\\1\\Documents\\Visual Studio 2008\\Projects\\0001)\\MStruct_in_File(QuickSorting)\\Debug\\output.txt", "w");
 for(int k1=i; k1<N; k1++)
  fprintf(fout, "%20s   %6d   %6d   %6d\n", p[k1]->name, p[k1]->championship, p[k1]->victories, p[k1]->pole_pozition);
 for(int k2=i-1; k2>=0; k2--)
  fprintf(fout, "%20s   %6d   %6d   %6d\n", p[k2]->name, p[k2]->championship, p[k2]->victories, p[k2]->pole_pozition);
 fclose(fout);
}
//============================================
// Record in the file.
void Record(Racer ob[], const int N)
{
 FILE *fin;
 fin = fopen("C:\\Users\\1\\Documents\\Visual Studio 2008\\Projects\\0001)\\MStruct_in_File(QuickSorting)\\Debug\\input.txt", "w");
 for(int i=0; i<N; i++)
  fprintf(fin, "%20s   %6d   %6d   %6d\n", ob[i].name, ob[i].championship, ob[i].victories, ob[i].pole_pozition);
 fclose(fin);
}
//============================================
 
int main()
{
 Racer R[N];
 *R = filling_struct(R, N);
 
 Record(R, N);
 
 QuickSort(R, 0, N-1);
  //_getch();   
 return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2012, 22:00     Сортировка массивом
Посмотрите здесь:

Операции с массивом. C++
Массивом C++
C++ Задачка с массивом
подскажите с массивом C++
Работа с массивом C++
С массивом C++
C++ Массивом и динамическим массивом
C++ с массивом С

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
25.01.2012, 00:41     Сортировка массивом #2
Цитата Сообщение от Sobaka_ru Посмотреть сообщение
// QuickSort.
Комментарии для этого и пишутся!
Yandex
Объявления
25.01.2012, 00:41     Сортировка массивом
Ответ Создать тему
Опции темы

Текущее время: 20:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru