LTといえば普通は技術紹介、気になるサービス紹介が普通でしょうが
私はあさっての方向の紹介担当です。
ボイジャー太陽圏ででたよ from szilkworm
たまには宇宙に思いを馳せましょう。
正の自然数nが素数pで割り切れというものです。
n = ab (a > 1, b > 1)と分解できるとき、pはa, bの内の少なくとも一方を割り切る。
var bubbleSort = function(numbers) {
var i = 0;
var j = 0;
var length = numbers.length;
var temp = 0;
for(i = 0; i < length - 1; i++) {
for(j = 0; j < length - i - 1; j++) {
if(numbers[j] > numbers[j + 1]) {
swap(numbers, j, j + 1);
}
}
}
};
隣り合う要素の交換が行われるため、隣接交換法と呼ばれたり、大きな数字が右側に移動していくさまが泡のようだからバブルソートなんて呼ばれているわけである。
var mergeSort = function(numbers) {
var sort = function(start, end) {
var i = 0;
var j = 0;
var k = 0;
var temp = [];
if(start >= end) {
return;
}
var mid = Math.floor((start + end) / 2);
sort(Math.floor(start), mid);
sort(mid + 1, Math.floor(end));
for(i = start; i <= mid; i++) {
temp[i] = numbers[i];
}
for(i = mid + 1, j = end; i <= end; i++, j--) {
temp[i] = numbers[j];
}
i = start;
j = end;
for(k = start; k <= end; k++) {
if(temp[i] <= temp[j]) {
numbers[k] = temp[i];
i++;
}
else {
numbers[k] = temp[j];
j--;
}
}
};
sort(0, numbers.length - 1);
};
var quickSort = function(numbers) {
var sort = function(start, end) {
var pivot = numbers[Math.floor((start + end) / 2)];
var i = start;
var j = end;
while(true) {
while(numbers[i] < pivot) {
i++;
}
while(pivot < numbers[j]) {
j--;
}
if(i >= j) {
break;
}
swap(numbers, i, j);
i++;
j--;
}
if(start < i - 1) {
sort(start, i - 1);
}
if(j + 1 < end) {
sort(j + 1,end);
}
};
sort(0, numbers.length - 1);
};
var bogoSort = function(numbers) {
var shuffle = function(array) {
var i = 0;
var length = array.length;
for(i = 0; i < length; i++) {
var pos = Math.floor(Math.random() * (array.length - i) + i);
swap(array, i, pos);
}
};
var isAscending = function(array) {
var i = 0;
var length = array.length;
for(i = 0; i < length - 1; i++) {
if(array[i] > array[i + 1]) {
return false;
}
}
return true;
};
var sort = function() {
while(true) {
if(isAscending(numbers)) {
return;
}
shuffle(numbers);
}
}
sort();
};