![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2003
Адрес: холодная Эстония
Сообщений: 204
|
Подскажите алгоритм сортировки массива...
знаю нагло, но действительно надо срочно ... |
|
|||||
|
Регистрация: Oct 2003
Адрес: холодная Эстония
Сообщений: 204
|
юзал поиск array.sort не подойдёт ... если кому известно
есть методы bubble sort , qsort ... но я что-то ничего не понял ... точнее c C перевести что-то никак....интересует qsort |
|
|||||
|
Регистрация: Dec 2001
Адрес: n/a
Сообщений: 1,386
|
Array.sort
Доступность—Flash Player 5. Синтаксис: myArray.sort([compareFunction]) Параметры compareFunction Произвольная сравнивающая функция, определяющая порядок сортировки. Учитывая аргументы А и В, функция orderfunc должна выполнять сортировку следующим образом: -1 если A появляется прежде, чем B в сортируемой последовательности 0 если A = B 1 если A появляется после B в сортируемой последовательности Возвращает Ничего. Описание: Метод, сортирует массив на месте без создания копии. Если Вы опустите аргумент compareFunction, Flash сортирует элементы на месте, используя оператор сравнения <. Пример: Использование метода Array.sort без указания аргумента compareFunction: var fruits = ["oranges", "apples", "strawberries", "pineapples", "cherries"]; trace(fruits.join()); // выведет в окно Output oranges,apples,strawberries,pineapples,cherries fruits.sort(); trace(fruits.join()); // выведет apples,cherries,oranges,pineapples,strawberries Использование Array.sort, определяя аргумент функции.
var passwords = [
"gary:foo",
"mike:bar",
"john:snafu",
"steve:yuck",
"daniel:1234"
];
function order (a, b) {
// Элементы записаны в форме
// name:password
// Сортируем, используя в качестве ключа
// только часть name.
var name1 = a.split(':')[0];
var name2 = b.split(':')[0];
if (name1 < name2) {
return -1;
} else if (name1 > name2) {
return 1;
} else {
return 0;
}
}
for (var i=0; i< password.length; i++) {
trace (passwords.join());
}
passwords.sort(order);
trace ("Sorted:");
for (var i=0; i< password.length; i++) {
trace (passwords.join());
}
daniel:1234 gary:foo john:snafu mike:bar steve:yuck
__________________
Однажды, я захотел понюхать кока-колу, но кубики льда, застряли у меня в носу! |
|
|||||
|
Регистрация: Dec 2001
Адрес: n/a
Сообщений: 1,386
|
Array.sortOn
Доступность: Flash Player 6. Синтаксис: Array.sortOn(fieldName) Параметры: fieldName - это строка (String), которая идентифицирует область в элементе массива для сортировки. Возвращает: Ничего. Описание: Метод, сортирует однотипные элементы в массиве. Если параметр fieldName не задан, функция не работает. Если задано несколько параметров fieldName, первое значение преобразовывается в строку (String), а остальные параметры игнорируются. Если ни один из сравниваемых элементов не содержит область, указанную в fieldName, сортировка происходит также, как и в методе Array.sort. Пример: Этот пример создает новый массив и сортирует его в алфавитном порядке по city: var recArray = new Array(); recArray.push( { name: "bob", city: "omaha", zip: 68144 } ); recArray.push( { name: "greg", city: "kansas city", zip: 72345 } ); recArray.push( { name: "chris", city: "burlingame", zip: 94010 } ); recArray.sortOn("city"); // результат будет следующим: recArray[0] = name: "chris", city: "burlingame", zip: 94010 recArray[1] = name: "greg", city: "kansas city", zip: 72345 recArray[2] = name: "bob", city: "omaha", zip: 68144
__________________
Однажды, я захотел понюхать кока-колу, но кубики льда, застряли у меня в носу! |
|
|||||
|
Регистрация: Oct 2003
Адрес: холодная Эстония
Сообщений: 204
|
я конечно хотел использовать алгоритм quick sort как в си... но раз такой исчерпывающий ответ... спасибо.
Думаю этого хватит... хотя если кто выложит сюда алгоритм quick sort буду рад. |
|
|||||
|
Guest
Сообщений: n/a
|
//QuickSort
function sort_hoor (a, left, right) {
var i = left;
var j = right;
var step = -1;
var condition = 1;
if (left>=right) {
return;
};
do {
if (condition == (a[i]<a[j])) {
foo = a[j];a[j] = a[i]; a[i] = foo;
foo = j;j = i;i = foo;
step *= -1;
condition = !condition;
};
j += step;
} while (j != i);
sort_hoor(a, left, i-1);
sort_hoor(a, i+1, right);
};
left - минимальный сортируемый индекс массива (обычно = 0); right - максимальный сортируемый индекс массива (обычно = a.length-1); Удачи. |
|
|||||
|
Регистрация: Dec 2003
Адрес: Самара
Сообщений: 10
|
Цитата:
|
|
|||||
|
Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
|
__________________
flash/flex/unity |
![]() |
Часовой пояс GMT +4, время: 23:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|