Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.01.2008, 19:57
TeNoR вне форума Посмотреть профиль Отправить личное сообщение для TeNoR Найти все сообщения от TeNoR
  № 1  
Ответить с цитированием
TeNoR

Регистрация: Jan 2008
Сообщений: 18
По умолчанию Сортировка массива по количеству одинаковых элементов.

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

Нужно найти число (букву/символ), которое меньше (больше) всего повторялось из всех перечисленных в массиве неограниченного длинной.

Например [7, 9, 7, 1, 9, 7, 5, 2, 5, 2, 7];

после сортировки (arr.sort()); - [1, 2, 2, 5, 5, 7, 7, 7, 7, 9, 9]

Число которое повторялось меньше всего раз - [1];
Больше всего - [7];

Пожалуйста, помогите найти рациональный способ решения сортировки массива по количеству одинаковых элементов. (не получается составить оптимальный алгоритм).
Заранее спасибо.

Старый 24.01.2008, 23:56
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Допустим есть массив: [1, 1, 2, 2, 3, 3]
И минимальных и макслимальных элементов будет по два. Что в таком случаи надо вернуть?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 25.01.2008, 00:19
NoCD вне форума Посмотреть профиль Отправить личное сообщение для NoCD Найти все сообщения от NoCD
  № 3  
Ответить с цитированием
NoCD
 
Аватар для NoCD

Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
смотри вот этот образец, сам дня два парился, а на самом деле все просто
Код:
index=0 
number=9 

     for(i=0;i<number;i++) 
{              _root["p"+i]=random(number) 
                trace(_root["p"+i])} 
   jj=0 
   trace("........") 
     for(j=0;j<number;j++) 
{    for(k=0;k<number;k++) 
{   if(index==_root["p"+k]) 
{               jj++ 
}} 
                trace("Число "+index+"="+jj+" штуки") 
                index++ 
                jj=0 
}
надеюсь то, что требовалось


Последний раз редактировалось NoCD; 25.01.2008 в 21:29.
Старый 25.01.2008, 16:29
TeNoR вне форума Посмотреть профиль Отправить личное сообщение для TeNoR Найти все сообщения от TeNoR
  № 4  
Ответить с цитированием
TeNoR

Регистрация: Jan 2008
Сообщений: 18
iNils, сортировочное расположение n...n+k;

NoCD, спасибо большое, идея полностью подходящая.

Код:
index = 0;
number = 5;
var arr:Array=[];
var arr2:Array=[];
for (i=0; i<number; i++) {
	arr[i] = random(number);
	trace(arr[i]);
}
jj = 0;
trace("........");
for (j=0; j<number; j++) {
	for (k=0; k<number; k++) {
		if (index == arr[k]) {
			jj++;
		}
	}
	arr2[j]=(jj+"-"+index);

	index++;
	jj = 0;
}
arr2.sort();
trace(arr2);
Ещё раз спасибо!

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:22.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.