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

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

Войти
Регистрация
Восстановить пароль
 
aleksandr_00
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 48
#1

Всем здрасте.Можете рассказать(кратко и главн.),как выполн.двоичная быстрая сортировка?!я не профф...просто мне нужно ответ одну. - C++

21.03.2011, 22:02. Просмотров 358. Ответов 0
Метки нет (Все метки)

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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
[SIZE="1"]#include<conio.h>
#include<iostream.h>
#include<fstream.h>
#include <time.h>
//алфавит букв
enum Alhabit{a=1,b,c,d,e,
             f,g,h,i,j,k,
             l,m,n,o,p,q,
             r,s,t,u,v,w,
             x,y,z};
 
char * mas = new char[1048576];     //массив
int mas_count=0;                //количество элементов в массиве
 
//прототипы функций
char * in_binary(int i, int ch, char * massiv);
char get_bit(int elem, int number_byte);
void load_mas();
void exch(int i, int j);
void quicksortbinary(int l, int r, int d);
 
 
 
int main()
{
  load_mas();
 
  //выводим исходный массив
  for(int i = 0 ; i < mas_count ; i ++)
    cout << mas[i];
 
  cout<<endl;
 
/*
  // вывод массива в двоичном виде
  for(int a = 0 ; a < mas_count; a ++)
  {
    cout<<mas[a] <<" - ";
    for(int i = 0 ; i < 5 ; i ++)
      cout << get_bit(mas[a],i);
      cout<<endl;
  }
*/
  clock_t start, end;
 
  start = clock();
 
  //сортировка
  quicksortbinary(0,mas_count-1, 0);
 
  end = clock();
  cout << "time = " << (end - start) / CLK_TCK  << endl;
 
/*
  //вывод отсортированного массива
  for(int a = 0 ; a < mas_count; a ++)
  {
    if ( a != 0 && a - 1 != mas_count) cout<<" - ";
    cout<<mas[a];
  }
*/
 getch();
 return 0;
}
 
 
//------------------------------------------------------
// перевод в бинарный вид
char * in_binary(int i, int ch, char * massiv)
{
  if (i < 0 )return massiv;
  if (ch % 2 == 1 ) massiv[i] = '1';
  else massiv[i] = '0';
 
  in_binary(--i, ch /2, massiv);
  return massiv;
}
 
 
// в указанном номере элемента массива (elem)
// возвращает указанный номер бита (number_byte)
char get_bit(int elem, int number_byte)
{
  char * tmp = new char[4];
 
  in_binary(4, elem, tmp);
 
  return tmp[number_byte];
 
};
 
 
 
//------------------------------------------------------
// загрузить массив в mas
void load_mas()
{
   char in_char;
  ifstream inf ("infile.txt");
  inf.seekg(0);
 
  while(inf.get(in_char))
  {
    if(!char_traits<char>::eq(in_char,' '))
    {
      mas[mas_count] = in_char;
      mas_count++;
    }
  }
};
 
 
//------------------------------------------------------
// замена в mas i-го и j-го элементов
void exch(int i, int j)
{
  char tmp;
  tmp = mas[i];
  mas[i] = mas[j];
  mas[j] = tmp;
};
 
//------------------------------------------------------
// сортировка
void quicksortbinary(int l, int r, int d)
{
  int i = l, j = r;
  if (r<= l || d > 5) return;
  while(j != i)
  {
    while((get_bit(mas[i], d) == '0') && (i < j)) i++;
    while((get_bit(mas[j], d) == '1') && (j > i)) j--;
    if(mas[i] == mas[j]  && i != j) i++;
    exch(i,j);
  }
  if(get_bit(mas[i], d) == '0') j++;
 
  quicksortbinary(l, j-1, d+1);
  quicksortbinary(j, r, d+1);
 
  //cout << ".";
};
[/SIZE]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2011, 22:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Всем здрасте.Можете рассказать(кратко и главн.),как выполн.двоичная быстрая сортировка?!я не профф...просто мне нужно ответ одну. (C++):

Двоичная быстрая сортировка - C++
всем здарасте) В общем мне задали курсовую работу написать на С++, тема очень странная &quot;Двоичная быстрая сортировка&quot;((((.... Я пошустрил...

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

быстрая сортировка(ответ пжлст) - C++
Пжлст ответ: //Для чего нужна переменная &quot; f &quot;??? (№30-вниз) #include &lt;iostream&gt; using namespace std; ...

3.1 Посмотрите, вроде быстрая сортировка, в любом случае, можете переделать(лучше под с++)? - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; /* выделение памяти */ int...

Мне нужно написать коды к этим задачам.( Все пишут в Паскале). Но если можете мне в Бейсике. Пожалуйста - C#
Мне нужно написать коды к этим задачам.( Все пишут в Паскале). Но если можете в Бейсике. Пожалуйста, спасите меня

Можете мне показать как дальше нужно сделать формулу и график? - Visual Basic
Как мне написать формулу следующею и как мне нарисовать график? Первая формула К и Вторая формула B решается. Другие 2 формулы нужна...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2011, 22:02
Привет! Вот еще темы с ответами:

Всем здрасте! Подскажите тупому разобраться ! - Аудио, усилители звука
У меня ноутбук ASUS K53SD и усилок с системы 5.1 JetBalancе 601/ Каким образом мне подключить систему к ноуту??? Так 2.1 работает,по...

Можете рассказать про ошибку - C#
День добрый. Сделал кодик, но не понимаю от чего он ругается. Собственно сам код тут - using System; using...

Мне нужно чтоб данные я мог удолять их DataGridView - ра просто щелкнув по нужному @ID - C#
static string con = &quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=rmo.mdb&quot;; OleDbConnection Ocon; OleDbCommand Ocom; Ocon = new...

Всем добрый вечер. Мне нужно создать Новогоднюю анимационную открытку на Делфи - Delphi
Мне нужно срочно создать Новогоднюю анимационную открытку на Делфи. У кого есть какие-то исходники или ссылки, сбросьте пожалуйста)


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

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

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