Просмотр полной версии : двумерный массив
Друзья, помогите, что-то прямо творческий кризис настал :-(
Нужно упорядочить двумерный массив координат чтобы получилось так:
элементы должны идти сначала по возрастанию x, потом у...
допустим:
y1=-30;x1=0;
y2=-30;x2=10;
y3=-30;x3=20;
y4=-30;x4=30;
y5=-20;x5=0;
y6=-20;x6=10;
y7=-20;x7=20;
y8=-20;x8=30;
y9=-10;x9=0;
y10=-10;x10=10;
y11=-10;x11=20;
y12=-10;x12=30;
for (i=1; i<mass.length; i++) {
координата x записана в массиве mass[i][0]
координата y mass[i][1]
}
Заранее спасибо!!! Пиво с меня! ;)
legche sostavljat' massiv kak popalo, a potom formatirovat', 'to prosche, i v plane vesaq, i v plane skorosti.
Techmaker
09.12.2003, 16:53
for(mass=[],i=0,y=-30;y<=-10;y+=10){
for(x=0;x<=30;x+=10,i++){
mass[i]=[];
mass[i][0]=x;
mass[i][1]=y;
};
};
for(i2=0;i2<i;i2++){
trace(mass[i2]);
};
Techmaker
09.12.2003, 17:00
mass_x=[12,56,48,21,36];
mass_y=[542,226,40,58,0];
mass_x.sort(function(){return(arguments[0]>arguments[1]);});
mass_y.sort(function(){return(arguments[0]>arguments[1]);});
mass=[];
for(i in mass_x){mass[i]=[mass_x[i],mass_y[i]];};
for(i=0;i<mass.length;i++){trace(mass[i]);};
сортировка :)
так у меня массив и составляется как попало! это я для примера написал, главное - мне нужно упорядочить его по правилу, написанному в таблице.
Techmaker, У Вас сортируется по возрастанию mass_x и mass_y, а потом выводятся, а это же связанные значения, т.е.
не должно быть в начале
[12,56,48,21,36];
[542,226,40,58,0];
а потом
12,0
21,40
36,58
48,226
56,542
нужно - берем самое маленькое значение y - для него выводим по мере возрастания x (в случае наличия нескольких x с одинаковым y) - это сформировались n певых значений выходного массива
дальше взяли следующее по величине значение y - для него вывели x по мере возрастания...
и т.д. - посмотрите внимательно, пожалуйста, в пример который я привел!
HELP!!!
Тебе обязательно делать сортировку в AS 1, может AS2 подойдет ??
Я тут глянул функция 'sortOn' введена с шестёрки, так что этот сурс подойдет
arr = [];
arr[0] = {x:1, y:10};
arr[1] = {x:2, y:30};
arr[2] = {x:5, y:10};
arr[3] = {x:3, y:10};
arr[4] = {x:2, y:20};
arr[5] = {x:3, y:20};
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
arr.sortOn(["x", "y"]);
trace('after');
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
если подошол жду обещенной награды :D
Млин!!!!! Наверное я что-то объясняю не правильно... :-( Jlekc огромное спасибо, что пытаетесь помочь, награда будет, но
у Вас:
x : 1 | y : 10
x : 2 | y : 30
x : 5 | y : 10
x : 3 | y : 10
x : 2 | y : 20
x : 3 | y : 20
after
x : 1 | y : 10
x : 3 | y : 20
x : 2 | y : 20
x : 3 | y : 10
x : 5 | y : 10
x : 2 | y : 30
а мне нужно:
after
x : 1 | y : 10
x : 3 | y : 10
x : 5 | y : 10
x : 2 | y : 20
x : 3 | y : 20
x : 2 | y : 30
Видите в чем разница? Сначала для наименьшего y(10) перебираются по-возрастанию все x(1,3,5),
потом для следующего по величине y(20) - все x по возрастанию(2,3), затем для следующего y(30) и т.д.
Я уже голову сломал - никак не получается :(
посмотри в синтаксис 'sortOn', можно делать сортировку по любому элементу. Я написал sortOn([ "x" , "y" ]) как общий пример.
А тебе надо sortOn([ "y", "x" ]). Извини упустил :)
Techmaker
10.12.2003, 16:06
вот сделал, основываясь на примере Jlekc'а
arr = [];
arr[0] = {x:1, y:10};
arr[1] = {x:2, y:30};
arr[2] = {x:5, y:10};
arr[3] = {x:3, y:10};
arr[4] = {x:2, y:20};
arr[5] = {x:3, y:20};
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
arr.sort(function(){return(arguments[0].y>arguments[1].y)});
trace('after');
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
Ой, ребята... Сейчас заплачу! :-(
Techmaker, берем Ваш скрипт:
x : 1 | y : 10
x : 2 | y : 30
x : 5 | y : 10
x : 3 | y : 10
x : 2 | y : 20
x : 3 | y : 20
x : 5 | y : 20
x : 1 | y : 20
x : 6 | y : 30
x : 0 | y : 30
after
x : 1 | y : 10
x : 3 | y : 10
x : 5 | y : 10
вот до сюда все ОК
x : 1 | y : 20
x : 5 | y : 20
x : 3 | y : 20
x : 2 | y : 20
x : 0 | y : 30
x : 6 | y : 30
x : 2 | y : 30
а дальше? "y" размещаются верно, а x... почему для y=20 x идут 1,5,3 - нужно ведб 1,3,5
то же для y=30 - почему x 0,6,2 ведь надо 0,2,6!!!!
Я же написал. В моем коде:
arr.sortOn(["x", "y"]) замини на arr.sortOn(["y", "x"])
Сортировка роботает нормально !!!
всё еще жду... :D
Jleks, заменил. Код такой:
arr = [];
arr[0] = {x:1, y:10};
arr[1] = {x:2, y:30};
arr[2] = {x:5, y:10};
arr[3] = {x:3, y:10};
arr[4] = {x:2, y:20};
arr[5] = {x:3, y:20};
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
arr.sortOn(["x", "y"]);
trace('after');
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
выводит:
x : 1 | y : 10
x : 2 | y : 30
x : 5 | y : 10
x : 3 | y : 10
x : 2 | y : 20
x : 3 | y : 20
after
x : 1 | y : 10
x : 3 | y : 20
x : 2 | y : 20
x : 3 | y : 10
x : 5 | y : 10
x : 2 | y : 30
а надо:
x : 1 | y : 10
x : 3 | y : 10
x : 5 | y : 10
x : 2 | y : 20
x : 3 | y : 20
x : 2 | y : 30
Меня ктонить слишит :D :D :D
ЗАМИНИ arr.sortOn(["x", "y"]); на arr.sortOn(["y", "x"]);
заменил
arr = [];
arr[0] = {x:1, y:10};
arr[1] = {x:2, y:30};
arr[2] = {x:5, y:10};
arr[3] = {x:3, y:10};
arr[4] = {x:2, y:20};
arr[5] = {x:3, y:20};
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
arr.sortOn(["y", "x"]);
trace('after');
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
выводит
x : 1 | y : 10
x : 2 | y : 30
x : 5 | y : 10
x : 3 | y : 10
x : 2 | y : 20
x : 3 | y : 20
after
x : 1 | y : 10
x : 3 | y : 20
x : 2 | y : 20
x : 3 | y : 10
x : 5 | y : 10
x : 2 | y : 30
:-(
Господа, ну неужели на форуме нет ни одного человека, который может мне помочь? Ну помогите начинающему, пожалуйста - для меня это очень важно!!! :o
и бы предложил создавать сортировщик ручками, может вечерком сделаю.
iLoveYou
10.12.2003, 23:31
arr = [];
arr.push({x:1, y:8});
arr.push({x:3, y:4});
arr.push({x:9, y:5});
arr.push({x:2, y:9});
arr.push({x:5, y:2});
arr.push({x:7, y:6});
arr.push({x:8, y:3});
arr.push({x:4, y:1});
arr.push({x:6, y:7});
arr_len = arr.length;
function sortarr(par) {
for (var i = 0; i<arr_len; i++) {
for (var k = i+1; k<arr_len; k++) {
if (arr[i][par]>arr[k][par]) {
sx = arr[i].x;
sy = arr[i].y;
arr[i].x = arr[k].x;
arr[i].y = arr[k].y;
arr[k].x = sx;
arr[k].y = sy;
}
}
}
}
function printarr() {
for (var i = 0; i<9; i++) {
trace("x : "+arr[i].x+" | "+"y : "+arr[i].y);
}
}
printarr();
trace("=======");
sortarr("x");
printarr();
trace("=======");
sortarr("y");
printarr();
Ну чувак или у тя Флеш глючит :p , или ... кстати какая у тя версия
У меня трасирует:
x : 1 | y : 10
x : 2 | y : 30
x : 5 | y : 10
x : 3 | y : 10
x : 2 | y : 20
x : 3 | y : 20
after
x : 1 | y : 10
x : 3 | y : 10
x : 5 | y : 10
x : 2 | y : 20
x : 3 | y : 20
x : 2 | y : 30
это то 4ё те надо ???
код прежний
arr = [];
arr[0] = {x:1, y:10};
arr[1] = {x:2, y:30};
arr[2] = {x:5, y:10};
arr[3] = {x:3, y:10};
arr[4] = {x:2, y:20};
arr[5] = {x:3, y:20};
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
arr.sortOn(["y", "x"]);
trace('after');
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
может кто проверит сурс, а то я не понимаю юмара :rolleyes:
Я работал MX 2004
там стоят фильтры на прием аргументов возможно в 6-ки это и вызывает глюк
Попробуй убери скобки:
вместо arr.sortOn(["y", "x"]);
напиши arr.sortOn("y", "x");
Нет подрукой 6-ки чтоб проверить, но должно сработать
Если сработает назовите меня Super Mega Gosu Отцом :D :D :D
Оригинал написал(а) Sergey"iLoveYou"
arr = [];
arr.push({x:1, y:8});
arr.push({x:3, y:4});
arr.push({x:9, y:5});
arr.push({x:2, y:9});
arr.push({x:5, y:2});
arr.push({x:7, y:6});
arr.push({x:8, y:3});
arr.push({x:4, y:1});
arr.push({x:6, y:7});
arr_len = arr.length;
function sortarr(par) {
for (var i = 0; i<arr_len; i++) {
for (var k = i+1; k<arr_len; k++) {
if (arr[i][par]>arr[k][par]) {
sx = arr[i].x;
sy = arr[i].y;
arr[i].x = arr[k].x;
arr[i].y = arr[k].y;
arr[k].x = sx;
arr[k].y = sy;
}
}
}
}
function printarr() {
for (var i = 0; i<9; i++) {
trace("x : "+arr[i].x+" | "+"y : "+arr[i].y);
}
}
printarr();
trace("=======");
sortarr("x");
printarr();
trace("=======");
sortarr("y");
printarr();
Ну а кудаж без Сергея то ..., естественно он тут как тут. Любимая тема...
Sergey"iLoveYou",
arr = [];
arr.push({x:1, y:8});
arr.push({x:1, y:5});
arr.push({x:1, y:9});
arr.push({x:1, y:7});
arr.push({x:1, y:6});
arr.push({x:1, y:1});
arr.push({x:3, y:4});
arr.push({x:9, y:5});
arr.push({x:2, y:9});
arr.push({x:5, y:2});
arr.push({x:7, y:6});
arr_len = arr.length;
function sortarr(par) {
for (var i = 0; i<arr_len; i++) {
for (var k = i+1; k<arr_len; k++) {
if (arr[i][par]>arr[k][par]) {
sx = arr[i].x;
sy = arr[i].y;
arr[i].x = arr[k].x;
arr[i].y = arr[k].y;
arr[k].x = sx;
arr[k].y = sy;
}
}
}
}
function printarr() {
for (var i = 0; i<11; i++) {
trace("x : "+arr[i].x+" | "+"y : "+arr[i].y);
}
}
printarr();
trace("=======");
sortarr("x");
printarr();
trace("=======");
sortarr("y");
printarr();
выводит:
x : 1 | y : 8
x : 1 | y : 5
x : 1 | y : 9
x : 1 | y : 7
x : 1 | y : 6
x : 1 | y : 1
x : 3 | y : 4
x : 9 | y : 5
x : 2 | y : 9
x : 5 | y : 2
x : 7 | y : 6
=======
x : 1 | y : 8
x : 1 | y : 5
x : 1 | y : 9
x : 1 | y : 7
x : 1 | y : 6
x : 1 | y : 1
x : 2 | y : 9
x : 3 | y : 4
x : 5 | y : 2
x : 7 | y : 6
x : 9 | y : 5
=======
x : 1 | y : 1
x : 5 | y : 2
x : 3 | y : 4
x : 1 | y : 5
x : 9 | y : 5
x : 7 | y : 6
x : 1 | y : 6
x : 1 | y : 7
x : 1 | y : 8
x : 1 | y : 9
x : 2 | y : 9
:( :( :( :(
Flash 6 MX
Слишь hr
Пробывал убрать скобки:
вместо arr.sortOn(["y", "x"]);
напиши arr.sortOn("y", "x");
жутко интиресно :)
Jlekc,
arr = [];
arr[0] = {x:1, y:10};
arr[1] = {x:2, y:30};
arr[2] = {x:5, y:10};
arr[3] = {x:3, y:10};
arr[4] = {x:2, y:20};
arr[5] = {x:3, y:20};
arr[6] = {x:7, y:20};
arr[7] = {x:4, y:20};
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
arr.sortOn("y", "x");
trace('after');
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
выводит:
x : 1 | y : 10
x : 2 | y : 30
x : 5 | y : 10
x : 3 | y : 10
x : 2 | y : 20
x : 3 | y : 20
x : 7 | y : 20
x : 4 | y : 20
after
x : 1 | y : 10
x : 3 | y : 10
x : 5 | y : 10
x : 4 | y : 20
x : 7 | y : 20
x : 2 | y : 20
x : 3 | y : 20
x : 2 | y : 30
а меня:
x : 1 | y : 10
x : 2 | y : 30
x : 5 | y : 10
x : 3 | y : 10
x : 2 | y : 20
x : 3 | y : 20
x : 7 | y : 20
x : 4 | y : 20
after
x : 3 | y : 10
x : 5 | y : 10
x : 1 | y : 10
x : 2 | y : 20
x : 3 | y : 20
x : 7 | y : 20
x : 4 | y : 20
x : 2 | y : 30
посмотри синтаксис функции sortOn. В хелпаке всегда есть рабочий пример.
Или достать нормальный флеш ( у всех работает ) :p
а мне то нужно
after
x : 1 | y : 10
x : 3 | y : 10
x : 5 | y : 10
x : 2 | y : 20
x : 3 | y : 20
x : 4 | y : 20
x : 7 | y : 20
x : 2 | y : 30
:confused:
Ребята, выручайте... :o
Что делать то? Может кто иной способ сортировки предложит? Другой Flash сейчас возможности нет достать.
:rolleyes:
iLoveYou
11.12.2003, 23:45
: hr :, предложенный мной алгоритм работает, только он не учитывает, как выясняется, все твои требования. подумаю -- переделаю. а ты тоже без дела не сиди -- поищи в инете алгоритмы сортировки двумерных массивов.
iLoveYou
12.12.2003, 00:16
arr = [];
arr.push({x:1, y:8});
arr.push({x:1, y:6});
arr.push({x:9, y:8});
arr.push({x:2, y:9});
arr.push({x:5, y:2});
arr.push({x:5, y:6});
arr.push({x:8, y:6});
arr.push({x:4, y:1});
arr.push({x:6, y:2});
arr_len = arr.length;
function sortarr(par1, par2) {
for (var i = 0; i<arr_len; i++) {
for (var k = i+1; k<arr_len; k++) {
if (arr[i][par1]>arr[k][par1]) {
sx = arr[i].x;
sy = arr[i].y;
arr[i].x = arr[k].x;
arr[i].y = arr[k].y;
arr[k].x = sx;
arr[k].y = sy;
} else if (arr[i][par1] == arr[k][par1]) {
if (arr[i][par2]>arr[k][par2]) {
sxy = arr[i][par2];
arr[i][par2] = arr[k][par2];
arr[k][par2] = sxy;
}
}
}
}
}
function printarr() {
for (var i = 0; i<9; i++) {
trace("x : "+arr[i].x+" | "+"y : "+arr[i].y);
}
}
printarr();
trace("=======");
sortarr("x", "y");
printarr();
trace("=======");
sortarr("y", "x");
printarr();
trace("Origin");
trace("===========================");
arr = [];
arr2=[];
arr[0] = {x:1, y:10};
arr[1] = {x:2, y:30};
arr[2] = {x:5, y:10};
arr[3] = {x:3, y:10};
arr[4] = {x:2, y:20};
arr[5] = {x:3, y:20};
arr[6] = {x:7, y:20};
arr[7] = {x:4, y:20};
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
trace("sortOn");
trace("===========================");
arr.sortOn("y");
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
for(var i=0;i<arr.length;i++){
if(typeof(arr2[arr[i].y])!="object"){arr2[arr[i].y]=[]}
arr2[arr[i].y][arr[i].x]=arr[i].x
}
for(var i=0;i<arr2.length;i++){
if(typeof(arr2[i])=="object"){
for(var j=0;j<arr2[i].length;j++){
if(typeof(arr2[i][j])=="number"){
if(a==undefined){a=0}
arr[a]={x:j,y:i}
a++
}
}
}
}
trace('after');
trace("===========================");
for (var i = 0; i<arr.length; i++) {
trace('x : '+arr[i].x+' | '+'y : '+arr[i].y);
}
//Всем горе программерам посвящается :)
//Только парня запутали :)
Origin
===========================
x : 1 | y : 10
x : 2 | y : 30
x : 5 | y : 10
x : 3 | y : 10
x : 2 | y : 20
x : 3 | y : 20
x : 7 | y : 20
x : 4 | y : 20
sortOn
===========================
x : 3 | y : 10
x : 5 | y : 10
x : 1 | y : 10
x : 2 | y : 20
x : 3 | y : 20
x : 7 | y : 20
x : 4 | y : 20
x : 2 | y : 30
after
===========================
x : 1 | y : 10
x : 3 | y : 10
x : 5 | y : 10
x : 2 | y : 20
x : 3 | y : 20
x : 4 | y : 20
x : 7 | y : 20
x : 2 | y : 30
Серег, я первый взялся писать, так что это вроде как наезд :confused:
смысл тот же, но я пол часа спустил при написании кода, гони мои пол часа обратно :)
ЗЫ
Не люблю! Не люблю! Не люблю! Не люблю! Не люблю! Не люблю! Не люблю! Не люблю! Не люблю! Не люблю!
Nox Noctis
12.12.2003, 01:18
кхм... я канеш не настолько немеряно крут, чтобы написать три десятка строк за пол часа... и сортировку я не люблю... я люблю луну и спать...
но объясните мне, вот такого кода не достаточно для решения задачи ? :)
arr = [{x: ... , y: ...}, ..... ];
sortXY = function (a, b) {
return (a.y == b.y)*(a.x>b.x || -1) || (a.y>b.y || -1);
};
arr.sortOn("y");
arr.sort(sortXY);
зы: голову ! берегите голову !
Mage Lord
12.12.2003, 01:56
Спакуха, Нокс. Нифига ты не понимаешь в колбасных обрезках. Нормальные герои всегда идут в обход. ;)
Если делать то универсально :D . Сортировка с любым количеством аргументов:
Array.prototype.mySortOn = function() {
this.constructor.arg = arguments;
// проблема с аргументами проверю потом
// ----- begin Compare
function compare() {
var argPrev = arguments[1].constructor.argPrev;
arguments[1].constructor.argPrev = arguments[0];
if (argPrev == undefined) {
arguments[1].sortOn(arguments[0]);
} else {
var i = 0;
var _arr = [arguments[1][0]];
var _sort = [];
while (i<arguments[1].length) {
if (arguments[1][i][argPrev] == arguments[1][i+1][argPrev]) {
_arr.push(arguments[1][i+1]);
} else {
_arr.sortOn(arguments[0]);
_sort = _sort.concat(_arr);
delete _arr;
_arr = [arguments[1][i+1]];
}
++i;
}
return _sort;
}
return arguments[1];
}
// ----- end of Compare
while (this.constructor.arg.length>0) {
this = compare(this.constructor.arg.shift(), this);
}
// ????????????????? this уже не принадлежит к arr
arr = this;
};
// ------- end Of Function
arr = [];
arr.push({x:1, y:1, z:1});
arr.push({x:2, y:2, z:2});
arr.push({x:2, y:2, z:1});
arr.push({x:2, y:1, z:1});
arr.push({x:3, y:1, z:1});
arr.push({x:2, y:1, z:2});
arr.mySortOn("y", "x", "z");
//
for (var i = 0; i<arr.length; i++) {
trace("x : "+arr[i].x+" | "+"y : "+arr[i].y+" | "+"z : "+arr[i].z);
}
Только народ возник глюк :confused: . Объект и его псевдоним раздилились, пришлось писать какойто бред см. строку 34. Может кто чо понимает??
iLoveYou
12.12.2003, 12:12
Оригинал написал(а) Nox Noctis
но объясните мне, вот такого кода не достаточно для решения задачи ? :)
голову ! берегите голову !
Нокс, я тебя уважаю :)
Но когда я смотрю на предложенное тобой решение, вспоминаю времена, когда вы с BlooDeliMiter'ом и другими умными людьми соревновались на предмет "кто напишет один и тот же по смыслу код короче". Мне кажется, что здесь это не нужно, так как человеку требуется не решение как таковое, а освоение принципа. тогда он не скажет через неделю:"Нокс, а переделай свой код для меня так, чтобы он еще..........., короче, кофе в постель приносил" :) Ведь, согласись, твое решение не всем понятно и очевидно, хотя красиво и кратко. А показанный мной алгоритм до такой степени прост и прозрачен, что, может быть, лучше не жертвовать строками кода ради краткости. Мне кажется, понимание важнее. :)
Nox Noctis
12.12.2003, 19:01
Оригинал написал(а) Sergey"iLoveYou"
Нокс, я тебя уважаю :) так мы с вами уважаемые люди ! :)))
в ифах слишком много строк :) но в любом случае - я сильно удивился тому как вы хитрецки стали решать эту сортировку...
_________________________________
есть два свойства - Y и X, нужно отсортировать по обоим, причем приоритет у Y...
первая сортировка делается через Array.sortOn - это сделали все. а вторая - делается через Array.sort с нестандартной функцией сортировки.. это не очевидно ? вопрос только в том как правильно эту функцию сформулировать...
2: hr :
функция сортировки получает два элемента массива A и B и выдает
1 : если A нужно поставить перед B
-1 : если А нужно поставить после В
0 : если менять местами А и В не нужно
учитывая что у нас в массиве объекты, и что сортировку по Y нарушать нельзя, получается следующее:
сортировка(А, В) {
1. если А.Y не равно B.Y => по X сортировать нельзя,
надо руководствоваться значениями Y.
возвращаем 1 если А.Y>B.Y, -1 если А.Y<B.Y и 0 если они равны.
2. если А.Y равно B.Y => по X сортировать можно.
возвращаем 1 если А.X>B.X, -1 если А.X<B.X
}
iLoveYou
13.12.2003, 00:42
Оригинал написал(а) Nox Noctis
в ифах слишком много строк :) но в любом случае - я сильно удивился тому как вы хитрецки стали решать эту сортировку...
[/CODE]
чего ж там такого хитрецкого? :)
простейший "пузырьковый" алгоритм сортировки, знакомый всем с глубокого детства.
кстати, вот вопрос: встроенные sort() и sortOn() по какому алгоритму осуществлены? сомневаюсь, что по продвинутому, вроде хоаровского. или на встроенные методы ограничения плеера не действуют? ;) по крайней мере, мои опыты в осуществлении алгоритмов сортировки во флеше спотыкаются о суровое правило 256 рекурсий :)
бррр! это я к тому, что если встроенные методы основаны на простых алгоритмах сортировки, то твоя сортировка займет в 1.5-2 раза больше времени, чем моя, из-за того, что проход по элементам осуществляется дважды.
Nox Noctis
13.12.2003, 00:53
не занудствуй :)
ты и сам прекрасно понимаешь,
что соотношение овчинки и выделки всегда должно быть в пользу овчинки.. :) если вопсользоваться Array.sort - написание сортировки занимает от трех до десяти минут при сильном ветре...
поэтому не о чем тут спорить мне кажется :)
iLoveYou
13.12.2003, 12:20
мы разве спорим? :) У нас просто несколько разные подходы.
да, я въедливый. а ты, а ты ... короче, сам знаешь. :)
единственный вопрос:
встроенные sort() и sortOn() по какому алгоритму осуществлены?
Ребята, всем огромное спасибо!!! :cool: Обещанную награду в виде пива, предлагаю получить лично, в Питере, или... бандеролью!!! :D :D
Nox Noctis
16.12.2003, 14:41
Оригинал написал(а) : hr :
предлагаю получить лично, в Питеревот это ты зря сказал :)))
Оригинал написал(а) Mage Lord
Спакуха, Нокс. Нифига ты не понимаешь в колбасных обрезках. Нормальные герои всегда идут в обход. ;)
ааа... твоего друга не Бармолеем кличут ? :):):)
iLoveYou
17.12.2003, 18:54
Оригинал написал(а) Nox Noctis
вот это ты зря сказал :)))
неа, зря он сказал вот это:
или... бандеролью!!!
:)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.