Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2010, 12:21   #1
X@OC
Форумчанин
 
Аватар для X@OC
 
Регистрация: 18.06.2010
Сообщений: 273
Вопрос Двухмерный массив и метод пузырька

Доброго времени суток

Задача
Упорядочить строки (столбцы) матрицы в порядке возрастания значений элементов k-го столбца (строки).

вот код
Цитата:
import java.util.Random;

public class Array_1 {

public static int getRandom(int min, int max)
{
Random ran = new Random();
int res = ran.nextInt(max);
return res;
}

public static void main(String[] args)
{
int n=getRandom(2,10), m=getRandom(2,10), q=0;
int[][] a = new int[n][m];
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
a[i][j] = getRandom(-100,100);
}
}
for(int i=0; i<n; i++)
{
for(int j= ??? ; j>i; j--)
{
if(a[i][j-1] > a[i][j])
{ q=a[i][j-1]; a[i][j-1]=a[i][j]; a[i][j]=q; }
}
}
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
}
я не знаю как начать правильно сортировать
так как я встретился с этим впервые
размерность массива задается случайным образом

Подскажите как можно выполнить такую сортировку, и этот условие
[ значений элементов k-го столбца (строки). ]
----------------------------------------------------------------------
Зарание спасибо
X@OC вне форума Ответить с цитированием
Старый 30.11.2010, 12:08   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от X@OC Посмотреть сообщение
Доброго времени суток
....
Привет .

Не мог бы ты привести пример матриц , какой начальный результат и что ты хочешь получить в конце .
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 30.11.2010, 12:59   #3
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Я немного подработал твою программу , сейчас должно работать получше , random я тоже немного поправил , он у тебя делал не правильно .

Код:
import java.util.Random;

public class Array_1 {

   public static int getRandom(int min, int max) {
		Random ran = new Random();
		int n = max - min + 1;
		int i = ran.nextInt() % n;
		if (i < 0)
			i = -i;
		return min + i;
	}

   public static void main(String[] args)
  {
      int n = getRandom(2, 10), m = getRandom(2, 10), q = 0;
		System.out.println("n =" + n + " ;m =" + m);		
		int[][] a = new int[n][m];
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				a[i][j] = getRandom(-100, 100);
			}
		}
                System.out.println("--------Created Matrix (Random)--------");
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				System.out.print(a[i][j] + "\t");
			}
			System.out.println();
		}		
                // bubble sort 
		for (int i = 0; i < n * m - 1; i++) {
			for (int j = i; j < m * n; j++) {
				if (a[(int) i / m][(int) i % m] > a[(int) j / m][(int) j % m]) {
					q = a[(int) i / m][(int) i % m];
					a[(int) i / m][(int) i % m] = a[(int) j / m][(int) j % m];
					a[(int) j / m][(int) j % m] = q;
				}
			}
		}
                System.out.println("--------New Matrix--------");
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				System.out.print(a[i][j] + "\t");
			}
			System.out.println();
		}
  }
}
Ниже пример работы программы :

Код:
n =3 ;m =6
--------Created Matrix (Random)--------
-22	21	-4	-55	57	97	
93	-45	-64	-6	75	56	
68	82	54	4	-45	-13	
--------New Matrix--------
-64	-55	-45	-45	-22	-13	
-6	-4	4	21	54	56	
57	68	75	82	93	97
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---

Последний раз редактировалось andrewpalkin; 30.11.2010 в 13:06.
andrewpalkin вне форума Ответить с цитированием
Старый 30.11.2010, 15:56   #4
X@OC
Форумчанин
 
Аватар для X@OC
 
Регистрация: 18.06.2010
Сообщений: 273
По умолчанию

Спасибо andrewpalkin
работает
X@OC вне форума Ответить с цитированием
Старый 30.11.2010, 16:13   #5
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от X@OC Посмотреть сообщение
Спасибо andrewpalkin
работает
Пожалуйста ! Не отказался бы от плюсика в репутацию
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод пузырька Darknes Общие вопросы C/C++ 13 29.06.2010 14:20
Метод пузырька gennc Общие вопросы C/C++ 2 15.06.2010 17:57
Метод пузырька(c++) ioda1986 Помощь студентам 1 25.02.2010 10:42
Сортировка строк(метод пузырька) Serjuk Помощь студентам 0 03.01.2010 19:01
Метод пузырька 13Anka07 Паскаль, Turbo Pascal, PascalABC.NET 1 23.05.2009 19:36