Реализации алгоритмов/Сортировка/Быстрая: различия между версиями
Содержимое удалено Содержимое добавлено
Slimbde (обсуждение | вклад) |
|||
Строка 537:
== [[JavaScript]] ==
<source lang="javascript" line="1">
function srt(arr)
{
if (arr instanceof Array)
if (arr.length < 2)
return arr;
*▼
/*------------------------------+
| [left][base] |
return undefined;▼
+------------------------------*/
let baseIndex = arr.length - 1;
for (let i = 0; i < baseIndex; ++i)
{
if (+arr[i] >= +arr[baseIndex])
{
arr.push(arr.splice(i--, 1)[0]);
--baseIndex;
}
}
/*------------------------------+
| [left][base][rest] |
+------------------------------*/
let left = arr.splice(0, baseIndex);
let base = arr.splice(0, 1);
// now arr is the rest of it
return srt(left).concat(base, srt(arr));
}
</source>
|