Skip to content

Instantly share code, notes, and snippets.

View taga3s's full-sized avatar
🍡

Seiya Tagami taga3s

🍡
View GitHub Profile
@taga3s
taga3s / caesarCipher.ts
Created March 6, 2024 05:18
シーザー暗号への変換
const rot13 = (c:string) => {
let unicode = c.charCodeAt(0);
if("a".charCodeAt(0) <= unicode && unicode <= "z".charCodeAt(0)) {
for(let i = 0; i < 13; i++) {
if(unicode === "z".charCodeAt(0)) {
unicode = "a".charCodeAt(0);
} else {
unicode++;
}
@taga3s
taga3s / fisherYatesShuffle.ts
Created December 19, 2023 11:24
フィッシャーイェーツのシャッフルの実装(TS)
function fisherYatesShuffle(arr: number[]): number[] {
for(let i = arr.length - 1; 0 <= i; i--) {
const r = Math.floor(Math.random() * (i + 1));
[arr[i], arr[r]] = [arr[r], arr[i]];
}
return arr
}
console.log(fisherYatesShuffle([1, 2, 3, 4, 5, 6, 7, 8]))
@taga3s
taga3s / quickSort.ts
Created December 19, 2023 11:04
クイックソートの実装(TS)
function quickSort(arr: number[]): number[] {
if(arr.length < 1) return arr
// pivotをランダムにとる
const pivotIndex = Math.floor(Math.random() * arr.length);
const pivot = arr[pivotIndex];
const left = arr.filter((value, index) => index !== pivotIndex && value <= pivot);
const right = arr.filter((value, index) => index !== pivotIndex && value > pivot);
@taga3s
taga3s / insertionSort.ts
Created December 17, 2023 08:10
挿入ソートの実装(TS)
function insertionSort(arr: number[], arrSize: number) {
for(let i = 1; i < arrSize; i++) {
// pos = 0 は既にソート済みとし、pos = 1 から始める
let pos = i;
while(pos && arr[pos] < arr[pos - 1]) {
[arr[pos], arr[pos - 1]] = [arr[pos - 1], arr[pos]];
pos--;
}
}
@taga3s
taga3s / selectionSort.ts
Last active December 17, 2023 08:15
選択ソートの実装(TS)
function selectionSort(arr: number[], arrSize: number) {
for(let i = 0; i < arrSize - 1; i++) {
let min = i;
for(let j = i; j < arrSize; j++) {
if(arr[j] < arr[min]) {
min = j;
}
}
@taga3s
taga3s / bubbleSort.ts
Last active September 30, 2024 15:58
バブルソートの実装(TS)
function bubbleSort(arr: number[]) {
for(let i = 0; i < arr.length - 1; i++) {
for(let j = arr.length - 1; i < j; j--) {
if(arr[j] < arr[j - 1]) {
[arr[j], arr[j - 1]] = [arr[j - 1], arr[j]];
}
}
}
return arr;
}
@taga3s
taga3s / README.md
Last active December 3, 2023 02:56
私的UIコンポーネントの命名規則プラクティス

私的UIコンポーネントの命名規則プラクティス

  1. 基本的に、パスカルケース(PascalCase) で記述する。JavaScriptはパスカルケースが使われるケースが多く、またHTML要素と区別しやすいため。
  2. 親コンポーネントと密結合した子コンポーネントには、親コンポーネントの名前をプレフィックスとして含むようにする。
// 例

components/
|- TodoList.tsx
|- TodoListItem.tsx