Данный отчёт сгенерирован 10.02.2023 18:21:31 UTC.
HTML версия (этот сайт) сгенерирован 10.02.2023 18:21:38 UTC.
Коммит: [bfeb65b9] add automatic zip creation 10.02.2023 18:21:31
HTML версия (этот сайт) сгенерирован 10.02.2023 18:21:38 UTC.
Коммит: [bfeb65b9] add automatic zip creation 10.02.2023 18:21:31
Задача: Швидке Сортування
10.02.2023 18:21:31
Описание: Запрограмувати швидке сортування у вигляді функції quickSort(lst), яка нічого не повертає, але впорядковує переданий їй масив. Не використовувати метод sort.
10.02.2023 18:21:31
Решений: 22
10.02.2023 18:21:31
Швидке Сортування
10.02.2023 18:21:31
function quickSort(lst, begin=0, end=lst.length)
{
if (end - begin < 2) return
let m = partSort(lst, begin, end)
quickSort (lst, begin, m)
quickSort (lst, m + 1, end)
}
function partSort(arr, begin=0, end=arr.length)
{
function change(i, j)
{
let temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
}
let s = begin
end--
while(true)
{
while (arr[begin] <= arr[s]) begin++
while (arr[end] > arr[s]) end--
if (begin < end)
{
change(begin, end)
}
else
{
break
}
}
change(end, s)
return end
}
function quickSort(arr) {
for (var i = 0, endI = arr.length - 1; i < endI; i++) {
for (var j = 0, endJ = endI - i; j < endJ; j++) {
if (arr[j] > arr[j + 1]) {
var swap = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = swap;
}
}
}
}
function quickSort(lst) {
for (let i = 0; i < lst.length - 1; i++) {
for (j = i + 1; j < lst.length; j++) {
if (lst[i] > lst[j]) {
let temp = lst[i];
lst[i] = lst[j];
lst[j] = temp
}
}
}
}
function quickSort(lst, left = 0, right = lst.length - 1) {
let i = left;
let j = right;
let middle = lst[parseInt((right + left)/2)];
while (i < j) {
while (lst[i] < middle) i++;
while (middle < lst[j]) j--;
if (i <= j) {
let temp = lst[i];
lst[i] = lst[j];
lst[j] = temp;
i++;
j--;
}
}
if (left < j) quickSort(lst, left, j);
if (i < right) quickSort(lst, i, right);
}
function quickSort(lst){
for(let i = 0; i < lst.length; i++){
for(let k = 0; k < lst.length; k++){
if(lst[i] > lst[k]){
var gold = lst[k]
lst[k]=lst[i]
lst[i]=gold
}
}
}
return lst.reverse()
}
function quickSort(lst) {
for (let index = 0; index < lst.length; index++) {
for (let i = 0; i < lst.length-1; i++) {
if (lst[i]>lst[i+1]) {
let a = lst[i];
lst[i]=lst[i+1];
lst[i+1]=a;
}
}
}
}
function part(lst, s, e){
const pVal = lst[e];
let pIdx = s;
for (let i = s; i < e; i++) {
if (lst[i] < pVal) {
let t = lst[i];
lst[i] = lst[pIdx];
lst[pIdx] = t;
pIdx++;
}
}
let t = lst[pIdx];
lst[pIdx] = lst[e];
lst[e] = t;
return pIdx;
}
function quickSort(lst, s=0, e=0) {
if(!e)
e = lst.length-1;
if (s >= e) {
return;
}
let i = part(lst, s, e);
quickSort(lst, s, i - 1);
quickSort(lst, i + 1, e);
}
function quickSort(lst){
for(let i = 0; i < lst.length; i++){
for(let k = 0; k < lst.length; k++){
if(lst[i] > lst[k]){
let gold = lst[k]
lst[k] = lst[i]
lst[i] = gold
}
}
}
return lst.reverse()
}
function partSort(a, l, r) {
const swap = (i, j) => {
let t = a[i];
a[i] = a[j];
a[j] = t;
};
let p = l;
r -= 1;
while(true) {
while(a[l] <= a[p]) l += 1;
while(a[r] > a[p]) r -= 1;
if(l < r)
swap(l, r);
else
break;
}
swap(r, p);
return r;
}
function quickSort(a, l = 0, r = a.length) {
if(r - l < 2) return;
let m = partSort(a, l, r);
quickSort(a, l, m);
quickSort(a, m + 1, r);
}
function quickSort(arr, a=0,b=arr.length) {
if (b - a < 2) return;
let m = partSort(arr, a, b);
quickSort (arr, a, m);
quickSort (arr, m + 1, b);
}
function partSort(arr, a=0, b=arr.length)
{
function change(i, j) {
let t = arr[i]; arr[i] = arr[j]; arr[j] = t;
}
let p = a;
b--;
while(1) {
while (arr[a] <= arr[p]) a++;
while (arr[b] > arr[p]) b--;
if (a < b)
change(a, b);
else
break;
}
change(b, p);
return b;
}
function quickSort(lst, left = 0, right = lst.length) {
function partSort(arr, left, right){
let pos = left
right--
while (left < right){
while (arr[left] <= arr[pos]) ++left
while (arr[right] > arr[pos]) --right
if (left < right) [arr[left], arr[right]] = [arr[right], arr[left]]
}
t = arr[right]
arr[right] = arr[pos]
arr[pos] = t
return right
}
if (right - left < 2) return
let temp = partSort(lst, left, right)
quickSort(lst, left, temp)
quickSort(lst, temp + 1, right)
}
function quickSort(arr) {
let temp = 0
for(let i = 0;i< arr.length;i++){
for(let j = i;j< arr.length;j++){
if(arr[i]-arr[j]>0){
console.log(arr)
console.log(arr[i],arr[j],arr[i]-arr[j])
temp = arr[j]
arr.splice(j,1,arr[i])
arr.splice(i,1,temp)
temp = 0
}
}
}
}
function quickSort(lst) {
for (let j = lst.length - 1; j > 0; j--) {
for (let i = 0; i < j; i++) {
if (lst[i] > lst[i + 1]) {
let temp = lst[i];
lst[i] = lst[i + 1];
lst[i + 1] = temp;
}
}
}
}
function quickSort(lst) {
let array = [];
array.push(0);
array.push(lst.length - 1);
while(array[array.length - 1] >= 0) {
let end = array.pop();
let start = array.pop();
let pivotIndex = partition(lst, start, end);
if (pivotIndex - 1 > start) {
array.push(start);
array.push(pivotIndex - 1);
}
if (pivotIndex + 1 < end){
array.push(pivotIndex + 1);
array.push(end);
}
}
}
function partition (arr, start, end) {
let pivotValue = arr[end];
let pivotIndex = start;
for (let i = start; i < end; i++) {
if (arr[i] < pivotValue) {
[arr[i], arr[pivotIndex]] = [arr[pivotIndex], arr[i]];
pivotIndex++;
}
}
[arr[pivotIndex], arr[end]] = [arr[end], arr[pivotIndex]]
return pivotIndex;
}
function quickSort(lst, c = 0, d = lst.length - 1) {
function partSort(a, b) {
function change(i, j) {
[lst[i], lst[j]] = [lst[j], lst[i]];
}
let pivot = lst[Math.floor((a + b) / 2)];
a--;
b++;
while (true) {
do {
a++;
} while (lst[a] < pivot);
do {
b--;
} while (lst[b] > pivot);
if (a >= b) return b;
change(a, b);
}
}
if (lst.length < 2) return;
if (c >= 0 && d >= 0 && c < d) {
let m = partSort(c, d);
quickSort(lst, c, m);
quickSort(lst, m + 1, d);
}
}
function quickSort(lst, a = 0,b = lst.length) {
if(b-a< 2) return;
let m = partSort(lst, a, b);
quickSort (lst, a, m);
quickSort (lst, m + 1, b);
}
function partSort(arr, a, b)
{
function change(i, j) {
let t = arr[i]; arr[i] = arr[j]; arr[j] = t;
}
let p = a;
b--;
while(1) {
while (arr[a] <= arr[p]) a++;
while (arr[b] > arr[p]) b--;
if (a < b)
change(a, b);
else
break;
}
change(b, p);
return b;
}
function quickSort(lst) {
for (let k = lst.length - 1; k > 0; k--) {
for (let i = 0; i < k; i++) {
if (lst[i] > lst[i + 1]) {
let temp = lst[i];
lst[i] = lst[i + 1];
lst[i + 1] = temp;
}
}
}
}
function quickSort(lst,a = 0,b = lst.length) {
if (b - a < 2) return;
let m = partSort(lst, a, b);
quickSort (lst, a, m);
quickSort (lst, m + 1, b);
}
function partSort(arr, a = 0, b = arr.length)
{
function change(i, j) {
let t = arr[i]; arr[i] = arr[j]; arr[j] = t;
}
let p = a;
b--;
while(1) {
while (arr[a] <= arr[p]) a++;
while (arr[b] > arr[p]) b--;
if (a < b)
change(a, b);
else
break;
}
change(b, p);
return b;
}
function quickSort(lst, left = 0, right = lst.length - 1) {
let i = left;
let j = right;
let middle = lst[parseInt((right + left)/2)];
while (i < j) {
while (lst[i] < middle) i++;
while (middle < lst[j]) j--;
if (i <= j) {
let temp = lst[i];
lst[i] = lst[j];
lst[j] = temp;
i++;
j--;
}
}
if (left < j) quickSort(lst, left, j);
if (i < right) quickSort(lst, i, right);
}
function quickSort(lst) {
for(let length=lst.length-1; length>=0; length--){
let max = length;
for(let i=0; i if(lst[max]< lst[i]){
let tmp = lst[max];
lst[max] = lst[i];
lst[i] = tmp;
}
}
}
}
function quickSort(arr, left = 0, right = arr.length - 1){
function pivot(arr, start = 0, end = arr.length -1){
function replace(arr, i, j){
let temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
let pivot = arr[start];
let track = start;
for(let i = start + 1; i <= end; i++){
if(arr[i] < pivot){
track++;
replace(arr, track, i)
}
}
replace(arr, start, track);
return track;
}
if(left < right){
let index = pivot(arr, left, right);
quickSort(arr, left, index - 1);
quickSort(arr, index + 1, right)
}
}
function partSort(arr, k=0, k1 = arr.length-1){
let a = arr[k]
for(i=k;i<=k1;i++){
if(arr[i]< a){
let b = arr[i]
arr.splice(i,1)
arr.splice(k,0,b)
}
}
return arr.indexOf(a)
}
function quickSort(lst, l1=0, l2=lst.length-1){
if(l2-l1< 1) return
let m = partSort(lst, l1, l2)
quickSort(lst, l1, m)
quickSort(lst, m+1, l2)
}
{
if (end - begin < 2) return
let m = partSort(lst, begin, end)
quickSort (lst, begin, m)
quickSort (lst, m + 1, end)
}
function partSort(arr, begin=0, end=arr.length)
{
function change(i, j)
{
let temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
}
let s = begin
end--
while(true)
{
while (arr[begin] <= arr[s]) begin++
while (arr[end] > arr[s]) end--
if (begin < end)
{
change(begin, end)
}
else
{
break
}
}
change(end, s)
return end
}
for (var i = 0, endI = arr.length - 1; i < endI; i++) {
for (var j = 0, endJ = endI - i; j < endJ; j++) {
if (arr[j] > arr[j + 1]) {
var swap = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = swap;
}
}
}
}
for (let i = 0; i < lst.length - 1; i++) {
for (j = i + 1; j < lst.length; j++) {
if (lst[i] > lst[j]) {
let temp = lst[i];
lst[i] = lst[j];
lst[j] = temp
}
}
}
}
let i = left;
let j = right;
let middle = lst[parseInt((right + left)/2)];
while (i < j) {
while (lst[i] < middle) i++;
while (middle < lst[j]) j--;
if (i <= j) {
let temp = lst[i];
lst[i] = lst[j];
lst[j] = temp;
i++;
j--;
}
}
if (left < j) quickSort(lst, left, j);
if (i < right) quickSort(lst, i, right);
}
for(let i = 0; i < lst.length; i++){
for(let k = 0; k < lst.length; k++){
if(lst[i] > lst[k]){
var gold = lst[k]
lst[k]=lst[i]
lst[i]=gold
}
}
}
return lst.reverse()
}
for (let index = 0; index < lst.length; index++) {
for (let i = 0; i < lst.length-1; i++) {
if (lst[i]>lst[i+1]) {
let a = lst[i];
lst[i]=lst[i+1];
lst[i+1]=a;
}
}
}
}
const pVal = lst[e];
let pIdx = s;
for (let i = s; i < e; i++) {
if (lst[i] < pVal) {
let t = lst[i];
lst[i] = lst[pIdx];
lst[pIdx] = t;
pIdx++;
}
}
let t = lst[pIdx];
lst[pIdx] = lst[e];
lst[e] = t;
return pIdx;
}
function quickSort(lst, s=0, e=0) {
if(!e)
e = lst.length-1;
if (s >= e) {
return;
}
let i = part(lst, s, e);
quickSort(lst, s, i - 1);
quickSort(lst, i + 1, e);
}
for(let i = 0; i < lst.length; i++){
for(let k = 0; k < lst.length; k++){
if(lst[i] > lst[k]){
let gold = lst[k]
lst[k] = lst[i]
lst[i] = gold
}
}
}
return lst.reverse()
}
const swap = (i, j) => {
let t = a[i];
a[i] = a[j];
a[j] = t;
};
let p = l;
r -= 1;
while(true) {
while(a[l] <= a[p]) l += 1;
while(a[r] > a[p]) r -= 1;
if(l < r)
swap(l, r);
else
break;
}
swap(r, p);
return r;
}
function quickSort(a, l = 0, r = a.length) {
if(r - l < 2) return;
let m = partSort(a, l, r);
quickSort(a, l, m);
quickSort(a, m + 1, r);
}
if (b - a < 2) return;
let m = partSort(arr, a, b);
quickSort (arr, a, m);
quickSort (arr, m + 1, b);
}
function partSort(arr, a=0, b=arr.length)
{
function change(i, j) {
let t = arr[i]; arr[i] = arr[j]; arr[j] = t;
}
let p = a;
b--;
while(1) {
while (arr[a] <= arr[p]) a++;
while (arr[b] > arr[p]) b--;
if (a < b)
change(a, b);
else
break;
}
change(b, p);
return b;
}
function partSort(arr, left, right){
let pos = left
right--
while (left < right){
while (arr[left] <= arr[pos]) ++left
while (arr[right] > arr[pos]) --right
if (left < right) [arr[left], arr[right]] = [arr[right], arr[left]]
}
t = arr[right]
arr[right] = arr[pos]
arr[pos] = t
return right
}
if (right - left < 2) return
let temp = partSort(lst, left, right)
quickSort(lst, left, temp)
quickSort(lst, temp + 1, right)
}
let temp = 0
for(let i = 0;i< arr.length;i++){
for(let j = i;j< arr.length;j++){
if(arr[i]-arr[j]>0){
console.log(arr)
console.log(arr[i],arr[j],arr[i]-arr[j])
temp = arr[j]
arr.splice(j,1,arr[i])
arr.splice(i,1,temp)
temp = 0
}
}
}
}
for (let j = lst.length - 1; j > 0; j--) {
for (let i = 0; i < j; i++) {
if (lst[i] > lst[i + 1]) {
let temp = lst[i];
lst[i] = lst[i + 1];
lst[i + 1] = temp;
}
}
}
}
let array = [];
array.push(0);
array.push(lst.length - 1);
while(array[array.length - 1] >= 0) {
let end = array.pop();
let start = array.pop();
let pivotIndex = partition(lst, start, end);
if (pivotIndex - 1 > start) {
array.push(start);
array.push(pivotIndex - 1);
}
if (pivotIndex + 1 < end){
array.push(pivotIndex + 1);
array.push(end);
}
}
}
function partition (arr, start, end) {
let pivotValue = arr[end];
let pivotIndex = start;
for (let i = start; i < end; i++) {
if (arr[i] < pivotValue) {
[arr[i], arr[pivotIndex]] = [arr[pivotIndex], arr[i]];
pivotIndex++;
}
}
[arr[pivotIndex], arr[end]] = [arr[end], arr[pivotIndex]]
return pivotIndex;
}
function partSort(a, b) {
function change(i, j) {
[lst[i], lst[j]] = [lst[j], lst[i]];
}
let pivot = lst[Math.floor((a + b) / 2)];
a--;
b++;
while (true) {
do {
a++;
} while (lst[a] < pivot);
do {
b--;
} while (lst[b] > pivot);
if (a >= b) return b;
change(a, b);
}
}
if (lst.length < 2) return;
if (c >= 0 && d >= 0 && c < d) {
let m = partSort(c, d);
quickSort(lst, c, m);
quickSort(lst, m + 1, d);
}
}
if(b-a< 2) return;
let m = partSort(lst, a, b);
quickSort (lst, a, m);
quickSort (lst, m + 1, b);
}
function partSort(arr, a, b)
{
function change(i, j) {
let t = arr[i]; arr[i] = arr[j]; arr[j] = t;
}
let p = a;
b--;
while(1) {
while (arr[a] <= arr[p]) a++;
while (arr[b] > arr[p]) b--;
if (a < b)
change(a, b);
else
break;
}
change(b, p);
return b;
}
for (let k = lst.length - 1; k > 0; k--) {
for (let i = 0; i < k; i++) {
if (lst[i] > lst[i + 1]) {
let temp = lst[i];
lst[i] = lst[i + 1];
lst[i + 1] = temp;
}
}
}
}
if (b - a < 2) return;
let m = partSort(lst, a, b);
quickSort (lst, a, m);
quickSort (lst, m + 1, b);
}
function partSort(arr, a = 0, b = arr.length)
{
function change(i, j) {
let t = arr[i]; arr[i] = arr[j]; arr[j] = t;
}
let p = a;
b--;
while(1) {
while (arr[a] <= arr[p]) a++;
while (arr[b] > arr[p]) b--;
if (a < b)
change(a, b);
else
break;
}
change(b, p);
return b;
}
let i = left;
let j = right;
let middle = lst[parseInt((right + left)/2)];
while (i < j) {
while (lst[i] < middle) i++;
while (middle < lst[j]) j--;
if (i <= j) {
let temp = lst[i];
lst[i] = lst[j];
lst[j] = temp;
i++;
j--;
}
}
if (left < j) quickSort(lst, left, j);
if (i < right) quickSort(lst, i, right);
}
for(let length=lst.length-1; length>=0; length--){
let max = length;
for(let i=0; i
let tmp = lst[max];
lst[max] = lst[i];
lst[i] = tmp;
}
}
}
}
function pivot(arr, start = 0, end = arr.length -1){
function replace(arr, i, j){
let temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
let pivot = arr[start];
let track = start;
for(let i = start + 1; i <= end; i++){
if(arr[i] < pivot){
track++;
replace(arr, track, i)
}
}
replace(arr, start, track);
return track;
}
if(left < right){
let index = pivot(arr, left, right);
quickSort(arr, left, index - 1);
quickSort(arr, index + 1, right)
}
}
let a = arr[k]
for(i=k;i<=k1;i++){
if(arr[i]< a){
let b = arr[i]
arr.splice(i,1)
arr.splice(k,0,b)
}
}
return arr.indexOf(a)
}
function quickSort(lst, l1=0, l2=lst.length-1){
if(l2-l1< 1) return
let m = partSort(lst, l1, l2)
quickSort(lst, l1, m)
quickSort(lst, m+1, l2)
}