![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
dark007 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.6.2010 Репутация: нет Всего: нет |
помогиде написать програмный код..
нужно написать программу которая сортировала бы массив методом "пузырька",а на экран выводился бы каждый шаг сортировки...очень надо,срочно... |
|||
|
||||
toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 2 Всего: 13 |
||||
|
||||
dark007 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.6.2010 Репутация: нет Всего: нет |
ну так она не показывает каждый шаг сортировки же... |
|||
|
||||
toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 2 Всего: 13 |
так допиши вывод каждого шага
|
|||
|
||||
dark007 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.6.2010 Репутация: нет Всего: нет |
в этом и проблема что я не пойму как...
Добавлено через 1 минуту и 3 секунды
в этом и проблема что я не пойму как.. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 2 Всего: 183 |
Для домашних заданий, курсовых, существует "Центр Помощи".
Тема перенесена! -------------------- ... |
|||
|
||||
susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 3 Всего: 7 |
|
|||
|
||||
dark007 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.6.2010 Репутация: нет Всего: нет |
и еще эта программа не работает...она не печатает каждый шаг сортировки а выдает нулевой шаг цикла просто за конечный этап сортировки... Это сообщение отредактировал(а) dark007 - 9.6.2010, 20:09 |
||||
|
|||||
dark007 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.6.2010 Репутация: нет Всего: нет |
#include <iostream>
using namespace std; const MAX = 5; void Swap(int arr[], int pos1, int pos2) { int tmp; tmp = arr[pos1]; arr[pos1] = arr[pos2]; arr[pos2] = tmp; } void PrintArray(int arr[]) { for(int i = 0; i < MAX; ++i) cout << arr[i] << endl; } void BubbleSort(int arr[]) { int i, j; for(i = 0; i < MAX - 1; ++i) for(j = 0; j < MAX - i; ++j) if (arr[j] > arr[j + 1]) Swap(arr, j , j + 1); } int main() { int arr[MAX]; int i; for (i = 0; i < MAX; ++i) { cout << "Enter element: " << endl; cin >> arr[i]; } PrintArray(arr); BubbleSort(arr); cout << "After sort: " << endl; PrintArray(arr); char r; cin >> r; return 0; } объсните мне просто что и где надо вставить в теле цикла сортировки чтобы выводился на экран каждый шаг сортировки... |
|||
|
||||
susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 3 Всего: 7 |
||||
|
||||
dark007 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.6.2010 Репутация: нет Всего: нет |
#include <iostream.h>
#include <stdio.h> #include <time.h> #include <stdlib.h> #include <string.h> class Array { private: int count; int* a; long steps; public: Array(){}; Array(int s); ~Array (); void print(); void fill_random(); void fill_user(); void sort_puzir(); void sort_vibor(); void sort_vstav(); / void steps_nul(); int get_steps(); }; Array::Array(int s) { count = s; a = new int[s]; if(!a) cout << "оштбка при созданние массива" << endl; } Array::~Array() { if(a) delete[] a; } void Array::print() { cout << "The array contains:" << endl; for(int i = 0; i<count; ++i) cout << a[i] << ' '; cout << endl; } void Array::fill_random() { int r = count*10; // randomize(); for(int i = 0; i<count; ++i) a[i] = rand(); cout<<a[i]<<' '; } void Array::fill_user() { cout << "Input elements:" << endl; for(int i = 0; i<count; ++i) { cout << "a[" << i << "] = "; cin >> a[i]; cout << endl; } } void Array::sort_puzir() { int tmp; steps = 0; for (int i = 0; i<count; ++i) for (int j = 0; j<count-1; ++j) { if (a[j]>a[j+1]) { tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; steps++; } steps++; } } void Array::sort_vstav() { int tmp; int j; steps = 0; for (int i = 0; i<count; ++i) { j = i; tmp = a[i]; while (j > 0 && tmp < a[j-1]) { a[j] = a[j-1]; j--; } a[j] = tmp; steps++; } } void Array::sort_vibor() { int tmp; steps = 0; for (int i = 0; i<count-1; ++i) for (int j= i+1; j<count-1; j++) { if (a[i]>a[j]) { tmp = a[i]; a[i] = a[j]; a[j] = tmp; } steps++; } } void Array::steps_nul() { steps = 0; } int Array::get_steps () { return steps; } int main (void) { Array *a0, *a1, *a2, *a3; int num_elements, min, min_num, how_fil; int num_steps1=NULL, num_steps2=NULL, num_steps[3]; char metod[21]; cout << "Input count of elements: "; cin >> num_elements; cout << endl; a0 = new Array(num_elements); a1 = new Array(num_elements); a2 = new Array(num_elements); a3 = new Array(num_elements); while (1) { cout << "How do you want to fill massiv? (1 - yorself, 2 - by randomize): "; cin >> how_fil; switch ( how_fil ) { case 1 : a0->fill_user(); break; case 2 : a0->fill_random(); break; default : cout << "Not correct value" << endl; } if ((how_fil==1) || (how_fil==2)) break; } for (int i = 0; i<num_elements; ++i) { a1[i] = a0[i]; a2[i] = a0[i]; a3[i] = a0[i]; } a0->print(); cout << endl; cout << "Sortirovka 1-go massiva metodom puzirka: " << endl; a1->sort_puzir(); a1->print(); num_steps[0] = a1->get_steps(); cout << "Sotirovka vipolnena za " << num_steps[0] << " shagov" << endl; cout << endl; cout << "Sortirovka 2-go massiva metodom vstavki: " << endl; a2->sort_vstav(); a2->print(); num_steps[1] = a2->get_steps(); cout << "Sotirovka vipolnena za " << num_steps[1] << " shagov" << endl; cout << endl; cout << "Sortirovka 3-go massiva metodom vibora: " << endl; a3->sort_vibor(); a3->print(); num_steps[2] = a3->get_steps(); cout << "Sotirovka vipolnena za " << num_steps[2] << " shagov" << endl; cout << endl; min_num = 0; min = num_steps[0]; for ( i=0; i<3; ++i) if (num_steps[i] < min) { min = num_steps[i]; min_num = i; } switch(min_num){ case 0: strcpy(metod,"puzirka"); break; case 1: strcpy(metod,"vstavki"); break; case 2: strcpy(metod,"vibora"); break; } cout << "Sortiovka metodom " << metod << " vipolnyaetsya za menshee chislo shagov: " << min << endl; char Q; cout << "For exit press monkey:"; cin >> Q; return 0; return 0; } вот,посмотрите еще раз на программу...помогите мне ее дописать чтобы она выводила каждый шаг сортировки на экран... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |