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

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

Войти
Регистрация
Восстановить пароль
 
 
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
#1

Сортировка Пузырьком :) - C++

31.12.2013, 22:56. Просмотров 1039. Ответов 29
Метки нет (Все метки)

Привет, ребята
Вообщем, наткнулся на написание программы с использованием сортировки пузырьком. Никогда не использовал
Часть кода написал сам, часть отвечающая за сортировку нашел в интернете
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
#include <iostream>
#include <iomanip>
#include <fstream>
 
using namespace std;
 
void bubbleSort(float*, float);
 
int main(int argc, char* argv[]) {
    
FILE* file; // for using 
float i = 0;
int array = 0; // float values; double does not working, because using FILE*
float d = 0; 
float k;
 
ifstream input;
ofstream output;
 
char data[30]; // symbol type;
cout << "Enter your data: ";
cin.getline(data, 30);
 
file = fopen(data, "r"); // only read
 
char output1[30]; // symbol type;
cout << "Enter output file: ";
cin.getline(output1, 30);
 
output.open(output1);
 
if(file == NULL) {
cout << "Error file not found!" << endl;
cin.get();
return 0;
}
 
while(!feof(file)){
    fscanf(file, "%f", &i); // open your .txt file and == i
    array++;
}
 
    float *sorted_array = new float [array]; // одномерный динамический массив
    for (int counter = 0; counter < array; counter++) {
    }
 
    bubbleSort(sorted_array, array); // вызов функции сортировки пузырьком
 
    for (int counter = 0; counter < array; counter++)
    {
    output << sorted_array[counter] << endl; // печать отсортированного массива
}
}
 
void bubbleSort(float* arrayPtr, float length_array) // сортировка пузырьком 
{
 double temp = 0; // временная переменная для хранения элемента массива
 bool exit = false; // болевая переменная для выхода из цикла, если массив отсортирован
 
 while (!exit) // пока массив не отсортирован
 {
  exit = true;
  for (int int_counter = 0; int_counter > (length_array - 1); int_counter++) // внутренний цикл
    //сортировка пузырьком по возрастанию - знак >
    //сортировка пузырьком по убыванию - знак <
    if (arrayPtr[int_counter] > arrayPtr[int_counter + 1]) // сравниваем два соседних элемента
    {
     // выполняем перестановку элементов массива
     temp = arrayPtr[int_counter];
     arrayPtr[int_counter] = arrayPtr[int_counter + 1];
     arrayPtr[int_counter + 1] = temp;
     exit = false; // на очередной итерации была произведена перестановка элементов
    }
 }
}
Вообщем, проблема с сортировкой.
Знаю, что из-за того, что после закрытия цикла , он i присваивает как последнее число .txt файла.

З.Ы. Сортировка из .txt Файла.

И посмотрите какие еще ошибки

Надеюсь на Вашу помощь!

Заранее Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.12.2013, 22:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка Пузырьком :) (C++):

Сортировка пузырьком - C++
Здравствуйте! Решаю задачу:пользователь вводит слова через пробел,я должен вывести их в алфавитном порядке.Моя проблема в сортировке.Что...

Сортировка пузырьком - C++
вот написала программу но не работает :( #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; using...

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

сортировка пузырьком - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main(int argc, char *argv) { ...

Сортировка пузырьком - C++
Правильно ли организую ввод размера массива через клавиатуру?Если неправильно-то как? #include &lt;stdio.h&gt;; #include &lt;stdlib.h&gt;; ...

Сортировка пузырьком - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #define M 10 void main() { int i,j,n,k; int m; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ev_Hyper
Заблокирован
31.12.2013, 23:00 #2
Алгоритмы сортировок
0
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
31.12.2013, 23:01  [ТС] #3
А теперь нужно написать код
Helps
0
Ev_Hyper
Заблокирован
31.12.2013, 23:12 #4
то есть проблемы не с самой сортировкой?
0
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
31.12.2013, 23:15  [ТС] #5
Да.
Нужно еще на всякий проверить сортировку.
Но брал код с форума какого-то
Должен работать.
C++
1
2
3
4
while(!feof(file)){
    fscanf(file, "%f", &i); // open your .txt file and == i
    array++;
}
После закрытия цикла , он i присваивает как последнее число .txt файла.
0
Ev_Hyper
Заблокирован
31.12.2013, 23:21 #6
Цитата Сообщение от Esecman Посмотреть сообщение
fscanf(file, "%f", &i);
а почему вы не используете потоки для считывания данных?

Цитата Сообщение от Esecman Посмотреть сообщение
После закрытия цикла , он i присваивает как последнее число .txt файла.
а каким оно должно быть по вашему?
0
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
31.12.2013, 23:22  [ТС] #7
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
а почему вы не используете потоки для считывания данных?


а каким оно должно быть по вашему?
Так в data.txt чисел 44469
А выдает последнее.
В этом то и проблема, что он после закрытия цикла выдает последнее число тхт файла.
Я не знаю, как решить проблему

Он считывает, но в цикле
0
Ev_Hyper
Заблокирован
31.12.2013, 23:26 #8
Цитата Сообщение от Esecman Посмотреть сообщение
Так в data.txt чисел 44469
А выдает последнее.
В этом то и проблема, что он после закрытия цикла выдает последнее число тхт файла.
Я не знаю, как решить проблему
а проблема в чем? Выдает последнее число из файла, так и должно быть.
0
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
31.12.2013, 23:27  [ТС] #9
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
а проблема в чем? Выдает последнее число из файла, так и должно быть.
Сортировка должна быть всех значений, а не одного
0
Ev_Hyper
Заблокирован
31.12.2013, 23:28 #10
так записывайте информацию в массив.
0
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
31.12.2013, 23:30  [ТС] #11
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
так записывайте информацию в массив.
Так, а если у меня будет over 141941941 значений?
0
Ev_Hyper
Заблокирован
31.12.2013, 23:33 #12
Цитата Сообщение от Esecman Посмотреть сообщение
Так, а если у меня будет over 141941941 значений?
если столько значений, то зачем сортировка пузырьком?
0
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
31.12.2013, 23:34  [ТС] #13
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
если столько значений, то зачем сортировка пузырьком?
Дайте мне пожалуйста готовый код
Я посмотрю, что и как там. Впервые пишу такое
0
S_el
2100 / 1611 / 308
Регистрация: 15.12.2013
Сообщений: 6,451
31.12.2013, 23:37 #14
Цитата Сообщение от Esecman Посмотреть сообщение
Дайте мне пожалуйста готовый код
Я посмотрю, что и как там. Впервые пишу такое
Как это вы пишите,если хотите получить сразу готовый код?
0
Ev_Hyper
Заблокирован
31.12.2013, 23:39 #15
Цитата Сообщение от Esecman Посмотреть сообщение
Дайте мне пожалуйста готовый код
Я посмотрю, что и как там. Впервые пишу такое
я же скинул ссылку на тему где описываются сортировки + готовый код.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.12.2013, 23:39
Привет! Вот еще темы с ответами:

Сортировка пузырьком - C++
Привет всем! У меня по методу вопросов нет, успешно отсортировал от меньшего к большему, но вот от большего к меньшему - какая-то шляпа...

сортировка пузырьком - C++
Вечер добрый! Задача проста: отсортировать сначала по зп, если &lt; 400, то в 1ый список, а если больше, то во второй, отсортировав по...

Сортировка пузырьком - C++
Как сделать пошаговый вывод сортировки? #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;ctime&gt; using namespace std; void...

Сортировка пузырьком - C++
Не понимаю, в чем проблема при сортировке пузырьком. сортирую структуру: for (int i=0; i&lt;4; i++) { for (int j=n-1; j&gt;i; j--)...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.12.2013, 23:39
Ответ Создать тему
Опции темы

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