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

Помогите с блочной сортировкой - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Возобновление потока cin. http://www.cyberforum.ru/cpp-beginners/thread372042.html
Всем привет =) С недавних пор изучаю С++, и вот однажды, во время выполнения одного из заданий из учебника Страуструпа, наткнулся я на такое вот западло :): vector<int> v; int n = 0, sum = 0, temp = 0; cout << "Please enter few numbers (to stop entry type |):\n"; while(cin>>temp) v.push_back(temp); cin >> n; Собственно проблема: ввожу допустим 1 2 3 4 5 | , эти цифры...
C++ Пересчет размера обуви в размер ноги в дюймах 1.Написать программу, которая будет производить пересчет размера обуви в размер ноги в дюймах (попробуйте сделать эту программу и с использованием автоувеличения). 2.Составить программу, которая будет выводить таблицу квадратов для последовательности целых чисел. 3.Составить программу, которая будет переводить секунды (произвольное целое число) в часы, минуты и секунды. http://www.cyberforum.ru/cpp-beginners/thread372039.html
Работа с классами. Нужна помощь с функцией C++
Всем добрый вечер! Вот задание: Разработать класс содержащий: - компоненты данные - методы: а) конструктор по умолчанию; б) конструктор с параметрами; в) конструктор копирования; г) деструктор; д) методы класса для работы с данными.
C++ Перегрузка оператора - для нахождения целого числа
Необходимо перегрузить операцию вычисления количества дней между датами («дата» – «дата»). помогите дописать саму перегрузку оператора пожалуйста #include<iostream> #include<conio.h> using namespace std; const int days={0,31,28,31,30,31,30,31,31,30,31,30,31}; class Date { int day,month,year;
C++ Динамический список( Realloc, malloc, calloc) http://www.cyberforum.ru/cpp-beginners/thread371995.html
Здравствуйте! Надо написать программу которая 1) прочтет с клавиатуры длину поле N, 2)прочтет N чисел типа double а вложит их до поля, 3) найдет максимум а минимум из чисел 4) выпишет позицию и значение максимального элемента. Программу надо написать с помощью указателей на массив и функций realloc, malloc, calloc. Кто бы мог помочь хотя бы с первым пунктом. Заранее благодарен.
C++ : Написать функцию умножения двух чисел, используя только операцию сложения Привет))помогите пожалуйста решить задачку(на языке С): 1)Написать функцию умножения двух чисел, используя только операцию сложения. :umnik: подробнее

Показать сообщение отдельно
vova287
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 5
25.10.2011, 01:03     Помогите с блочной сортировкой
блочную сортировку задали, но задали не просто а с указателями и т.п т .д ,вроде по алгоритму все, не могу понять почему выбивает. Подскажите пожалуйста
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
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <time.h>
using namespace std; 
 
class element //element 
{
public:
 int value;
 element *next;
 element()
 {
 value=NULL;
 next=NULL;
 }
};
 
class bucket //bucket containing a perticular range of values 
{
public:
element *firstElement;
bucket()
{
firstElement = NULL;
}
};
 
void main() 
{
 int lowend=0; // minimum element 
 int highend=100; //max element 
 int interval=10; //number of intervals 
 const int size = 20; 
 const int noBuckets=(highend-lowend)/interval; //number of buckets required 
 bucket *buckets=new bucket[noBuckets]; 
 bucket *temp;
 
 for(int a=0;a<noBuckets;a++) //creation of required buckets 
 {
 temp=new bucket;
 buckets[a]=*temp;
 }
 
int array[size];     //выделяем память для массива, который будет содержать неотсортированные данные
 
srand(time(NULL));
for(int i = 0; i < size; i++)     //заполняем массив случайными числами в интервале от 1 до 100
array[i] = rand() % 300;
 
cout << "Nosorted array: " << endl << endl;
cout << array;     //выводим на печать неотсортированный массив
 
 for(int j=0;j<19;j++) //sending elments into appropriate buckets
 {
 cout<<array[j]<<endl;
 element *temp,*pre;
 temp=buckets[array[j]/interval].firstElement;
 if(temp==NULL)//if it is the first element of the bucket
 {
 temp=new element;
 buckets[array[j]/interval].firstElement=temp;
 temp->value=array[j];
 }
 else
 {
 pre=NULL;
 while(temp!=NULL) //move till the appropriate position in the bucket
 {
 if(temp->value>array[j])
 break;
 pre=temp;
 temp=temp->next;
 }
 if(temp->value>array[j]) //if the new value is in betwen or at the begining
 {
 if(pre==NULL) //insertion at first if the bucket has elements already
 {
 element *firstNode;
 firstNode=new element();
 firstNode->value=array[j];
 firstNode->next=temp;
 buckets[array[j]/interval].firstElement=firstNode;
 }
 else //insertion at middle
 {
 element *firstNode;
 firstNode=new element();
 firstNode->value=array[j];
 firstNode->next=temp;
 pre->next=firstNode;
 }
 }
 else// if the new value is to be created at last of bucket
 {
 temp=new element;
 pre->next=temp;
 temp->value=array[j];
 }
 
 }
 }
 
 cout<<"------------------------The Sorted Elements Are---------------\n";
 for(int jk=0;jk<10;jk++)
 {
 element *temp;
 temp= buckets[jk].firstElement;
 while(temp!=NULL)
 {
 cout<<"*"<<temp->value<<endl;
 temp=temp->next;
 }
 }
 cout<<"--------------------------------END--------------------------------\n";
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru