バブルソート
バブルソートはシンプルなアルゴリズムですが、大量のデータに対しては効率は悪いです。
Javascript - Node.js
function bubbleSort(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 隣り合う要素を交換
const temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
// ソート前の配列
const myArray = [1, 3, 10, 2, 8];
const sortedArray = bubbleSort(myArray);
console.log(sortedArray);
arr.sort() を使って1行でバブルソートするには以下のようにします。
Javascript - Node.js
const myArray = [1, 3, 10, 2, 8];
myArray.sort((a, b) => a - b);
console.log(myArray);
Python
def bubble_sort(arr):
for i in range(len(arr)):
for j in range(len(arr) - i - 1):
if arr[j] > arr[j + 1]:
# 隣り合う要素を交換
arr[j], arr[j + 1] = arr[j + 1], arr[j]
# ソート前のリスト
my_list = [1, 3, 10, 2, 8]
bubble_sort(my_list)
print(my_list)
arr.sort() を使って1行でバブルソートするには以下のようにします。
Python
my_list = [1, 3, 10, 2, 8]
my_list.sort()
print(my_list)
クイックソート
Javascript - Node.js
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
const pivot = arr[0];
const left = [];
const right = [];
for (let i = 1; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return [...quickSort(left), pivot, ...quickSort(right)];
}
const myArray = [3, 7, 2, 4, 6, 1, 9, 8, 5];
const sortedArray = quickSort(myArray);
console.log(sortedArray);
Python
def quick_sort(data):
if len(data) <= 1:
return data
pivot = data.pop(0)
left = [x for x in data if x < pivot]
right = [x for x in data if x >= pivot]
return quick_sort(left) + [pivot] + quick_sort(right)
my_list = [3, 7, 2, 4, 6, 1, 9, 8, 5]
sorted_list = quick_sort(my_list)
print(sorted_list)