0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 18
1

проблемы с сортировкой пузырьком

10.03.2013, 10:51. Показов 468. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
собственно сабж
проблема заключается в том, что программа сортирует ЧАСТЬ массива. Допустим, надо отсортировать каждый столбец по уменьшению значения суммы цифр каждого элемента. Так программа правильно отсортировывает 14 элементов из 16, а 2 стоят в неправильном порядке. Не могу понять, наверное где-то в цикле ошибка. Помогите, люди!

Код
// moiproject.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "iostream"
#include <time.h>

using namespace std;
int mas[100][100];
int i,j,k,n,m,l;
int arr[100][100];
int srav1=0;
int per1=0;
int Sum ( int N )
{
	int d, sum = 0;
	while ( N != 0 )
	{
		d = N % 10;
		sum = sum + d;
		N = N / 10;
	}
	return abs(sum);
}

int _tmain(int argc, _TCHAR* argv[])
{
cout<< ("Vvedote strok:\n");
	scanf("%4i",&m);//кол-во строк
	cout<< ("Vvedote stolbcov:\n");
	scanf("%4i",&n);// кол-во столбцов
	
	 srand(time(0));
	 for (i=0; i<m; i++) 
	{
		for (j=0; j<n; j++)
		{

			mas[i][j]=rand()%99-50; 
			
		}
	}
	 //Заполняем массив arr данными из mas
	for (int i=0; i<m; i++)
	{
		for (int j=0; j<n; j++)
		{
			arr[i][j]=mas[i][j];
		}
	}

  for (int i=0; i<m; i++)
	{
		for (int j=0; j<n; j++)
		{
			printf("%4i", arr[i][j]);
		}
		cout<<"\n";
	}
	cout<<"\n";
   printf("_____________________________\n");
	for (j=0 ; j<n; j++)//j-stolbec//
		{
		for (k=0 ; k<m-1; k++)//i-строчка//
		{
		  for (i=0; i<m-k-1; i++)
			{
				if (Sum(arr[i][j])<(Sum(arr[i+1][j])))
				{
					int temp=arr[i][j];
					arr[i][j]=arr[i+1][j];
					arr[i+1][j]=temp;
					per1++;
					l++;
					
				}
             srav1++;
			
		  }
		if (l==0) 
		{break;}
		l=0;
		l--;
		}
	l=k;
	}
	for (int i=0; i<m; i++)
	{
		for (int j=0; j<n; j++)
		{
			printf("%4i", arr[i][j]);
		}
		cout<<"\n";
	}
	cout<<"\n";
	printf("Kol-vo perestanovok - ");
	printf("%i\n",per1);
	printf("Kolitchstvo sravnenii- ");
	printf("%i\n",srav1);
system("pause");
	}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2013, 10:51
Ответы с готовыми решениями:

Сравнить сортировку пузырьком с сортировкой подсчетом
Нужно написать который бы сравнивал сортировку пузырьком с сортировкой подсчетом. Нужно вычислить...

Проблемы с быстрой сортировкой
Пишу программу, сортирующую четные строки матрицы быстрой сортировкой. Переставляются все элементы...

Проблемы с поразрядной сортировкой msd
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;clocale&gt; using namespace std; int main(int...

Отсортировать одномерный массив, заполненный случайными числами, сортировкой Шелла и сортировкой выбором
Отсортировать одномерный массив, заполненный случайными числами, сортировкой Шелла и сортировкой...

4
80 / 68 / 31
Регистрация: 10.05.2011
Сообщений: 284
10.03.2013, 11:12 2
Цитата Сообщение от bubliq Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
for (k=0 ; k<m-1; k++)//i-строчка//
        {
          for (i=0; i<m-k-1; i++)
            {
                if (Sum(arr[i][j])<(Sum(arr[i+1][j])))
                {
                    int temp=arr[i][j];
                    arr[i][j]=arr[i+1][j];
                    arr[i+1][j]=temp;
                    per1++;
                    l++
По моему Пузырёк
C++
1
2
3
for (k=0 ; k<m; k++)//i-строчка//
        {
          for (i=m-1; i>k; i--)
0
0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 18
10.03.2013, 11:24  [ТС] 3
Да даже если так то все равно неправильно сортирует
0
80 / 68 / 31
Регистрация: 10.05.2011
Сообщений: 284
10.03.2013, 11:37 4
Цитата Сообщение от bubliq Посмотреть сообщение
Да даже если так то все равно неправильно сортирует
Твой злодей:
C++
1
2
3
4
5
6
 if (l==0) 
        {break;}
        l=0;
        l--;
        }
    l=k;
1
0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 18
10.03.2013, 11:47  [ТС] 5
да, кстате, ты оказался прав, но тогда мне надо как то подсчитывать сравнения
0
10.03.2013, 11:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2013, 11:47
Помогаю со студенческими работами здесь

Проблемы с "Быстрой сортировкой"
Ребята, всем привет, не могли бы вы мне помочь. Столкнулся с быстрой сортировкой, но что-то не...

Проблемы с сортировкой в TTable
Здравствуйте! Не могу произвести сортировку по созданному в Датабейс десктоп индексу. Дело в том,...

Проблемы с сортировкой в подставляемых полях. AdoDataSet
Всем доброго времени суток, в общем такая проблема, пытаюсь реализовать сортировку по полю,...

Заменить сортировку вставками сортировкой пузырьком
Есть решение задачи, где я хочу заменить сортировку вставками сортировкой пузырьком. Написал так: ...

Отсортировать пузырьком вставками и своей сортировкой массив
Разработать приложение демонстрирующее работу с одномерный массивом, заполнение массива на форме...

Проблемы с сортировкой.....
Я с помощью DAO добавляю данные в таблице 'Списки'. Как мне эти данные потом отсортировать по...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru