Java-программирование (1-ые посты) 23.02.2015 / 02:35 | | Addlient_Shaym Пользователь Сейчас: Offline
Регистрация: 13.09.2012
| Kalter, Так? int[] firstArray = {2, 3, 5, 7, 13};
int[] secondArray = {1, 1, 2, 3, 5, 8, 13, 21};
for (int i = 0; i < firstArray.length; i++) {
for (int s = 0; s<secondArray.length; s++){
if(firstArray[i]==secondArray[s])System.out.println(secondArray[s]);
}
}
Компилятора под рукой нет, так что потестить не могу, но вроде ошибок нет. Только меня несколько напрягает цикл в цикле - не лучшее решение с точки зрения оптимизации, не так ли? |
23.02.2015 / 02:58 | | Kalter Пользователь Сейчас: Offline
Имя: Гриб Откуда: Оренбург - Нежинка Регистрация: 16.10.2013
| Addlient_Shaym, да, теперь верно. А с точки зрения оптимизации - зависит от конкретной задачи. Оптимизировать можно по-разному: как по скорости, так и по потреблению памяти (и зачастую весьма трудно находить баланс). Данное решение можно считать правильным. Так же стоит учесть, что сложность алгоритма O(m * n). В условии задачи сказано, что размер массива не превышает 100. Так как сложность алгоритма квадратичная (при m == n), нетрудно вычислить максимальное количество итераций: 100^2 = 10^4. Относительно не много, машина должна справится с этим менее чем за секунду. Но если увеличить размер массива до 10^10, то количество итераций увеличится до 10^20 (если m == n) - уже не выгодно. Данный способ решения можно оптимизировать, предварительно отсортировав один из массивов, и после уже искать бинарным поиском. Тогда сложность алгоритма будет следующей: O(mlogm + nlogm). Если учесть, что m == n, тогда O(2mlogm). __________________
Homo homini penis est. Изменено Kalter (23.02 / 03:00) (всего 3 раза) |
23.02.2015 / 16:17 | | Addlient_Shaym Пользователь Сейчас: Offline
Регистрация: 13.09.2012
| Kalter, А если есть два массива, в первом 10 значений, во втором - неизвестно (массив строк загруженных из файла, например), ну т.е. во втором может быть любое кол-во значений. Нужно записать в отдельный массив(или вектор) все строки из второго массива, которые совпадают со строками из первого массива, причем в той последовательности, в какой они были во втором массиве. Будет ли разница в скорости если сортировать первый или второй массив?
|
23.02.2015 / 17:56 | | Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| Addlient_Shaym, сортировки можно применить и к файлам собсно.
|
23.02.2015 / 23:04 | | Fantastik Пользователь Сейчас: Offline
Имя: Жалол Регистрация: 15.07.2014
| Создал читалку, но не отображает кириллицу. Что делать?
|
23.02.2015 / 23:24 | | Fantastik Пользователь Сейчас: Offline
Имя: Жалол Регистрация: 15.07.2014
| aNNiMON, А какую кодировку использует нокиа, и как использовать тот класс?
|
23.02.2015 / 23:28 | | Addlient_Shaym Пользователь Сейчас: Offline
Регистрация: 13.09.2012
| Ксакеп, не-не-не, есть допустим массив из 10 строк в которых хранятся теги ("[green]", "[red]", "[blue]", "[yellow]" и т.д.) и есть большой массив строк, начинающихся с этих тегов (неважно из файла или нет). В зависимости от тега, с которого начинается строка, нужно вывести его на экран определенным цветом. Что делать если строк много, а сортировку массива строк использовать нельзя (чтобы текст не перемешался)? Сортировать массив тегов, и при этом скорость выполнения будет такая же, как была бы при сортировке массива строк?
|
23.02.2015 / 23:56 | | Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| Addlient_Shaym, а при чем здесь получение разности двух массивов? Другая задача же, разве нет?
И как ты собрался определять непосредственно цвет текста? Ну, определил, что в массиве есть тег, а что дальше?
Сортировка нужна, чтобы можно было быстрее что-то найти. В java есть Arrays.sort(..,) и Arrays.binarySearch(...); пользуйся ими для массива тегов, если хочешь.
Изменено Ксакеп (23.02 / 23:57) (всего 1 раз) |
24.02.2015 / 00:20 | | aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Fantastik, обычно UTF-8 или CP1251 (она же win1251), ещё реже CP866 (она же DOS) или KOI-8R.
__________________
let live |
Всего сообщений: 16875 Фильтровать сообщения Поиск по теме Файлы топика (794)
|