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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2011, 11:04   #1
artem611
Пользователь
 
Регистрация: 21.09.2010
Сообщений: 40
По умолчанию Разобраться в коде(Java)

Есть код, для линейной сортировки слов
package MP;
Код:
import java.io.*;

public class QSort {
	//abcdefghijklmnopqrstuvwxyz
	//абвгдеёжзийклмнопрстуфхцчшщьыъэюя
	
	public static void sort(String[] mass) {
		String ALPH = "abcdefghijklmnopqrstuvwxyz";
		char c;
		int k;
		for(int i = mass[0].length() - 1; i >= 0; i--) {
			int[] count = new int[ALPH.length()];
			String[] dest = new String[mass.length];
			for(int j = 0; j < mass.length; j++) {
				count[ALPH.indexOf(mass[j].charAt(i))]++;
			}
////////////////////////////////////////////////////////////////////////////////////
			for(int j = count.length - 1; j > 0; j--) {
				k = j - 1;
				count[j] = 0;
				while(k >= 0) count[j] += count[k--];
			}
//////////////////////////////////////////////////////////////////////////////////
			count[0] = 0;
			for(int j = 0; j < mass.length; j++) {
				c = mass[j].charAt(i);
				dest[count[ALPH.indexOf(c)]] = mass[j];
				count[ALPH.indexOf(c)]++;
			}
			mass = dest;
		}
		for(int i = 0; i < mass.length; i++) {
			System.out.println(mass[i]);
		}
	}

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader (new FileInputStream("E:\\text.txt")));
		int size = Integer.parseInt(br.readLine());
		String[] mass = new String[size];
		int pos = 0;
		String buffer;
		while(true) {
			buffer = br.readLine();
			if(buffer == null) break;
			mass[pos] = buffer;
			pos++;
		}
		sort(mass);
	}
}
Сражу скажу, что код не мой. Я внем разбираюсь и почти уже разобрался. Но не могу до конца понять для чего нужден цикл, который я выделил? Мое предположение, что он нужен для того что бы получить индексы букв. Правильно ли это?
Спасибо!
artem611 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться в коде fate Общие вопросы по Java, Java SE, Kotlin 5 17.03.2009 22:10
ПОмогите разобраться в коде программы на С++ Ajanami Помощь студентам 4 26.11.2008 15:24