 
			
				17.02.2014, 01:47
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 15.02.2014 
					
					
					
						Сообщений: 19
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Подскажите по сортировке массива
			 
			
		
		
		
		есть код 
var arr=[],n , i, j, col, row, c, X;
//----------------------------------------------------------------------------
for (col = 0; col<5; col++){
    arr.push([]);
    for(row=0; row<5; row++){
        var x=Math.round(Math.random()*100);
        arr[col].push(x);
    }
}
alert(arr.join('\n'));
//----------------------------------------------------------------------------
n = arr.length;
    for ( i = 0; i < n-1; i++){
        for( j = i+1; j < n; j++){
            for ( c = 0; c < n; c++){
                if(arr[j][c] < arr[i][c]){
                    X = arr[i][c];
                    arr[i][c]=arr[j][c];
                    arr[j][c]=X;
                }
            }
        }
    }
alert(arr.join('\n'));
Подскажите как его переделать чтобы сортировать по строкам и по всему массиву.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.02.2014, 04:33
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		NuclleaR, 
 сначала отсортировать содержимое строк потом строки между собой 
 
var arr=[],n , i, j, col, row, c, X;
//----------------------------------------------------------------------------
for (col = 0; col<5; col++){
    arr.push([]);
    for(row=0; row<5; row++){
        var x=Math.round(Math.random()*5);
        arr[col].push(x);
    }
}
alert(arr.join('\n'));
//----------------------------------------------------------------------------
function sort(a) {
    for (var b = 0; b < a.length - 1; b++)
        for (var c = b + 1; c < a.length; c++) {
            var e = a[c].length;
            if (e)
                for (var d = 0; d < e; d++) {
                    if (a[c][d] != a[b][d]) {
                        if (a[c][d] > a[b][d]) break;
                        if (a[c][d] < a[b][d]) {
                            e = a[b];
                            a[b] = a[c];
                            a[c] = e;
                            break
                        }
                    }
                } else a[c] < a[b] && (e = a[b], a[b] = a[c], a[c] = e)
        }
    return a
};
for (var i=0; i<arr.length; i++)  {
  arr[i]=sort(arr[i])
}
arr = sort(arr);
alert(arr.join('\n'));
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.02.2014, 11:05
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 15.02.2014 
					
					
					
						Сообщений: 19
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 рони, 
А если нужно привести массив в вид: 
11122 
22223 
33444 
55668 
89999 
 
то нужно его превратить в одномерный, отсортировать и собрать обратно в двумерный 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.02.2014, 11:26
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от NuclleaR
			
		
	 | 
 
	| 
		то нужно его превратить в одномерный, отсортировать и собрать обратно в двумерный
	 | 
 
	
 
 да
 
var arr=[],n , i, j, col, row, c, X;
//----------------------------------------------------------------------------
for (col = 0; col<5; col++){
    arr.push([]);
    for(row=0; row<5; row++){
        var x=Math.round(Math.random()*5);
        arr[col].push(x);
    }
}
alert(arr.join('\n'));
//----------------------------------------------------------------------------
function sort(a) {
    for (var b = 0; b < a.length - 1; b++)
        for (var c = b + 1; c < a.length; c++) {
            var e = a[c].length;
            if (e)
                for (var d = 0; d < e; d++) {
                    if (a[c][d] != a[b][d]) {
                        if (a[c][d] > a[b][d]) break;
                        if (a[c][d] < a[b][d]) {
                            e = a[b];
                            a[b] = a[c];
                            a[c] = e;
                            break
                        }
                    }
                } else a[c] < a[b] && (e = a[b], a[b] = a[c], a[c] = e)
        }
    return a
};
var z = [];
for (var i=0; i<arr.length; i++)  {
  z = z.concat(arr[i])
}
z = sort(z);
for (var i=0; i<5; i++)  {
  z.push(z.splice(0,5))
}
alert(z.join('\n'));
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.02.2014, 13:43
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Если использовать ES5 функцию sort, то все проще: 
var arr=[],n , i, j, col, row, c, X;
//----------------------------------------------------------------------------
for (col = 0; col<5; col++){
    arr.push([]);
    for(row=0; row<5; row++){
        var x=Math.round(Math.random()*5);
        arr[col].push(x);
    }
}
alert(arr.join('\n'));
//----------------------------------------------------------------------------
var flat = [];
for (var i = 0; i < arr.length; i++)  {
  flat = flat.concat(arr[i]);
}
var sorted = flat.sort();
var result = [];
for (var i = 0; i < flat.length; i += 5) {
    result.push(sorted.slice(i, i + 5));
}
alert(result.join('\n'));
 
		
	
		
		
		
		
		
			
				__________________ 
				В личку только с интересными предложениями   
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.02.2014, 13:47
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 danik.js, 
без встроенных функций сортировки иначе зачем огород 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.02.2014, 13:52
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 рони, а где это сказано в условии? А огород от незнания. Вон народ по старой памяти document.all юзает еще )) 
		
	
		
		
		
		
		
			
				__________________ 
				В личку только с интересными предложениями   
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.02.2014, 14:00
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от danik.js
			
		
	 | 
 
	| 
		рони, а где это сказано в условии?
	 | 
 
	
 
 ТС забыл уточнить.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.02.2014, 17:01
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 15.02.2014 
					
					
					
						Сообщений: 19
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Да сорри забыл уточнить sort низя использовать   
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.02.2014, 17:28
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от NuclleaR
			
		
	 | 
 
	| 
		sort низя использовать
	 | 
 
	
 
 Это потому что он быстрей чем самописная функция? Или что ES5? Дык эту кастомную sort можно писать в прототип при отсутствии нативной. 
Или типа из академического интереса? Дык тогда и concat как-бы нельзя использовать. И splice тоже.  
		
	
		
		
		
		
		
			
				__________________ 
				В личку только с интересными предложениями   
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |