Сортировка двумерного массива методом пузырька
Привет всем! Помогите с сортировкой двумерного массива. Сортирует неправильно.
var arr=new Array(); for(var i=0;i<10;i++){ arr[i]=[]; for(var j=0; j<10;j++){ arr[i][j]=Math.floor(Math.random()*100)+1; } } var len=arr.length*arr.length; for(var c=0;c<len;c++){ for(var i=0; i<arr.length; i++){ for(var j=0;j<arr.length-1;j++) { if(arr[i][j]>arr[i][j+1]) { var p=arr[i][j]; arr[i][j]=arr[i][j+1]; arr[i][j+1]=p; } } } } |
Цитата:
|
ksa,
Пузырьковой сортировкой, я в названии темы указал |
а чем вам .sort() не нравится? замечательно ведь сортирует, правда методом «быстрой сортировки»
|
lammeR, вспомнился стариный анекдот...
- Бойцы! На танке поломалась рация... Кто может починить? - А рация на лампах или транзисторах? - Для особо тупых повторяю... Рация на ТАНКЕ!!! |
Цитата:
|
tadjik1, ну я хотел бы сам алгоритм написать, но не осилил.)
|
Цитата:
|
tadjik1, ДВУМЕРНЫЙ массив
|
lammeR, в js все массивы имеют одно измерение - параллельное :D
|
стоп, а как вы хотите-то отсортировать этот массив?
var a = [[1, 2], [2, 3], [1, 3], [3,2], [2, 1]]; чему должна равняться a после сортировки? |
Цитата:
|
5, 1, 4
2, 8, 3 9, 6, 7 по возрастанию 1 ,2 ,3 4, 5, 6 7, 8, 9 |
Цитата:
lammeR, чего это такое?) задача в том, чтобы из двумерного массива сделать одномерный, отсортировать и снова привести к двумерному? а если у вас будет var arr = [[1, 3], [4, 5, 1 ,3, 5], [2, 5, 6]]; как вы его хотите отсортировать? |
Цитата:
|
tadjik1, не знаю, что вы имеете ввиду, есть двумерный массив 10x10, заполненный случайными элементами, необходимо отсортировать двумерный массив по возрастанию и вывести этот же массив уже с отсортированными элементами.
|
lammeR, если тебе его нужно сортировать как одномерный - таки запиши его в одномерный, отсортируй...
А потом запиши обратно в 2-хмерный и выведи его. |
ksa, а нельзя ли это сделать без помощи одномерного, всю сортировку произвести с двумерным?
|
lammeR,
Ну ksa, логично сказал - превратить 10х10 в массив 100, отсортировать и вложить заново в 10 по 10, результат будет идентичен с сортировкой иным методом |
var arr = [[1, 2, 3], [2, 4, 5], [1, 5, 7], [5, 3, 7]], //исходный массив b = arr.join().split(',').sort(function(a, b) { return a - b }), //приводим исходный к одномерному, сортируем newarr = []; for(var i = 0; i < arr.length; i++){ newarr[i] = b.splice(0, arr[0].length) } //заполняем новый массив alert(JSON.stringify(newarr)); в javascript вообще нет поняти «многомерный массив» =) |
Цитата:
- Оно конечно лучше помучаться... (с) к/ф Белое солнце пустыни :) |
Цитата:
http://learn.javascript.ru/array#многомерные-массивы |
мне казалось, что в других языках это что-то большее, чем просто «массив массивов». так-то да, чем не многомерный)
|
Цитата:
Просто пишешь set a(1,2,3,4,"Вася")="Пример" :) |
Цитата:
Здесь написано обратное: Цитата:
|
nerv_,
Мну имхо думает, что слова все лишь попытка отражения чего то... К примеру для построения объемной модели куска поверхности тела нужон трехмерный массив, координаты на плоскости и высота данной точки над оной как они обзовутся в конкретном приложении - не суть, главное - удобное оперирование, не затемняющее смысла задачи |
Цитата:
Пример на JS // элемент одномерного массива a[5] // элемент двухмерного массива a[2][6] // элемент четырехмерного массива a[1][2][3][4] Т.е. определим размерность массива как "максимально возможное" количество его индексов, которое можно использовать для получения значений, хранящихся в оном массиве... :) |
Deff, спасибо за мнение.
ksa, и Вас благодарю. Цитата:
Вы говорите, что это двумерный массив это // элемент двухмерного массива a[2][6] я, что двумерный массив // элемент двухмерного массива a[2, 6] а то, что привели Вы это массив массивов. Кто прав? ) |
Цитата:
Цитата:
Спорят двое... Прийти к соглашению никак не получается... Третий предложил обратиться к мудрецу: - Скажи, мудрейший, кто из тех двух прав? Мудрец выслушал первого... И сказал? - Да, ты прав. Выслушал второго... И сказал: - Да, ты прав. Но тут возмутился третий! - Ну как же так! Не могут же оба быть правы!!! - И ты прав... :yes: |
ksa, я бы успокоился на
Цитата:
a[2][6] a[2, 6] и значат они совершенно разное. Как мне передать человеку свою мысль, если мы одним и тем же термином называем разные вещи? Мы просто будем путать друг друга. Не? ) |
Цитата:
Имхо все жа первый - двумерный массив элементов двумерной матрицы - *что уже однозначней Второй массив - из двух значений или длиной равной двум |
Цитата:
a[1, 6] и он ее понимает, как Цитата:
// array = a[1][6] a[0][0] = 1; a[0][1] = 2; a[0][2] = 3; a[0][3] = 4; a[0][4] = 4; a[0][5] = 6; a[0][6] = 7; a[1][0] = 8; a[1][1] = 9; // ... a[1][6] // or // array = a[1, 6] a[0, 0] = 1; a[0, 1] = 2; a[0, 2] = 3; a[0, 3] = 4; a[0, 4] = 4; a[0, 5] = 6; a[0, 6] = 7; a[1, 0] = 8; a[1, 1] = 9; // ... a[1, 6] Наверно, дискуссия на этот счет бесполезна. Придется ориентироваться по контексту. |
Часовой пояс GMT +3, время: 10:57. |