vs_convoy
@vs_convoy

Что не так с моей сортировкой?

Попытался реализовать qsort и что-то не пошло. Браузер просто виснет. Только начал учить js, может, что-то в синтаксисе не так?
var myArray = [], i, n=10;
for (i=n;i--;){
	myArray[i]=Math.floor(Math.random()*100); 
}
console.log(myArray);
document.write("Input array:<br>");

for (i=n;i--;){
	document.write(myArray[i]);
	if (i!=0){document.write(", ");}
} 
//to swap items 
function swap (array, x, y){
	var z = array[x]; array[x] = array[y]; array[y] = z; 
	return array;
}
//main qsort function 
function qsort (arrayToSort, i, j){
	var left = i; 
	var right = j;
	var pivot = arrayToSort[Math.floor((i+j)/2)];
  while (left<=right){
  	while (arrayToSort[left]>pivot) {
  		left++;
  	}
  	while (arrayToSort[right]<pivot) {
  		right++;
  	}
  	if(left<=right){
  		swap(arrayToSort, left, right);
  		left++;
  		right--;
  	}
  }
  if (i<left){
  	qsort(arrayToSort, i, left);
  }
  if (j<right){
  	qsort(arrayToSort, j, right);
  }
  return arrayToSort; 
}
qsort(myArray,0, myArray.length -1);
  • Вопрос задан
  • 337 просмотров
Пригласить эксперта
Ответы на вопрос 1
AlexXYZ
@AlexXYZ
O Keep Clear O
Если браузер завис, значит он взял этот код на выполнение. Откройте отладчик и пошагово пройдите сортировку. (обычно F12).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы