С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 362, средняя оценка - 4.62
Sacrament
4 / 1 / 1
Регистрация: 10.05.2007
Сообщений: 25
#1

Сортировка массива по возрастанию - C++

18.12.2008, 03:07. Просмотров 45283. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста, а то выходит какой-то бред. Нужно напистаь прогу, а именно: имеется двумерный массив размерностью NxN, где N = 11. 2.Элементы массива задать случайным образом в диапазоне 0...50 (rand, этому я научилась). Отсортировать все столбцы методом выбора так, чтобы элементы в них располагались по возрастанию. Сортироват методом пузырьков!!! (Алгоритм состоит в повторяющихся проходах по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает — массив отсортирован. При проходе алгоритма, элемент, стоящий не на своём месте, «всплывает» до нужной позиции как пузырёк в воде, отсюда и название алгоритма.)

Вот какая ерунда получилась у меня:
Код
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define A 11
int main( void )
{  int mass [A][A];
int i,k,j,min,minn,a;
printf ("Hello! It`s a programm for array\n\n");
srand((unsigned)time(NULL));
for (i=0; i<A; i++)
{  
	for (k=0; k<A; k++)
	{
		mass [i][k]=(int)((rand()/32767.0)*50);
		printf("| %i\t",mass[i][k]);
	}
	printf("\n");
	printf("\n");
}
for (k=0; k<A; k++)
{
	for (j=0; j<A; j++)
	{ 
		min=50;
		minn=0;
			for(i=j; i<A; i++)
			{
				if(min>mass[i][k])
				{
					min=mass[i][k];
					minn=i;
				}
			}
			a=mass[minn][k];
			mass[minn][k]= mass[j][k];
			mass[j][k]=a;
	}
}
for (i=0; i<A; i++)
{  
	for (k=0; k<A; k++)
	{
		printf("| %i\t",mass[i][k]);
	}
	printf("\n");
	printf("\n");
}
getch();
return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2008, 03:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка массива по возрастанию (C++):

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

Сортировка массива по возрастанию - C++
помогите пожалуйста определить массив из 70 вещественных чисел x=i*sin(i/20), i=1,2,...,70. отсортировать массив по возрастанию значений...

Сортировка массива по возрастанию - C++
Код работает через раз, иногда всё норм, иногда дублирует некоторые элементы (чаще всего два последних записывает одинаково), иногда вообще...

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

Сортировка массива по возрастанию - C++
Есть код , а как его отсортировать по возрастанию #include&lt;iostream&gt; #include&lt;ctime&gt; using namespace std; int main() { const...

Сортировка массива по возрастанию - C++
Вот программа, которая вычисляет количество одинаковых элементов в массиве, надо перед тем как считать одинаковые элементы провести...

4
Alirp
56 / 51 / 1
Регистрация: 04.05.2008
Сообщений: 272
18.12.2008, 08:17 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот пример сортировки одномерного массива методом пузырька:
Код
#include "iostream.h"
#include "stdio.h"

void bubbleSort(int array[], int col){                    
	int temp=0;                              
	for (int i=1;  i<col  ;  i++){            
		for (int j=0;  j<col-i;  j++){     
			if (array [j]>array [j+1]){     
				temp=array[j];           
				array [j]=array [j+1];    
				array [j+1]=temp;
			}
		}
	}
}

void main(){
	int i, size;
	int *array;
    cout << "Bubble Sort.\nEnter array dimension: ";
    cin >> size;
	array = new int[size];
    cout << "Enter " << size << " elements: ";
	for ( i = 0; i < size; i ++ ){
		cin >> array[i];
	}

	bubbleSort( array, size );

	cout << "Your array after sorting: ";
	for ( i = 0; i < size; i ++ ){
		cout << array[i] << " ";
	} 
    cout << "\nPress \"Enter\" to continue..." << endl; 
    getchar();
}
3
kypiwindy
365 / 279 / 108
Регистрация: 29.05.2010
Сообщений: 711
Записей в блоге: 1
Завершенные тесты: 3
30.05.2010, 13:37 #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
int mass[]={1,2,3,4,5,-1,-2};
int main()
{
        int *t;
        for(int i=0;i<7;i++)
        for (int j=0;j<7;j++)
                        if ((mass[j]=0)&& (mass[j+1])<0)
                        {
                                t=mass[j];
                                mass[j]=mass[j+1];
                                mass[j+1]=t;
                        }
}
Ошибка >e:\my project\мой массив\мой массив\massive.cpp(10) : error C2440: =: невозможно преобразовать 'int' в 'int *'
0
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
30.05.2010, 20:42 #4
Пятую строку перепишите
C
1
int t;
2
tolik007
0 / 0 / 0
Регистрация: 06.06.2014
Сообщений: 1
06.06.2014, 16:26 #5
Quicksort рулит) qsort подключил и радуешься
0
06.06.2014, 16:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2014, 16:26
Привет! Вот еще темы с ответами:

Сортировка массива по возрастанию - C++
Никак понять не могу! Как отсортировать массив по возрастанию!? Объявляю массив в виде глобальной переменной volatile unsigned char...

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

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

Сортировка массива по возрастанию - C++
Всем привет. Совсем недавно в C++. Выделяю динамическую память под массив в QT Creator и ввожу элементы массива с клавиатуры. В функции ...


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

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

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