Skip to content

Instantly share code, notes, and snippets.

@eggc
eggc / git-commit-template
Created February 23, 2023 09:58
Git commit template
# 🐛 fix:
# ✨ feat:
# ♻️ refactor:
# ✅ test:
# 📝 docs:
# 📦 package:
# ⚡️ perf:
# 💚 ci:
# ⚠️ warn:
# 👮 lint:
@eggc
eggc / merge_sort.rb
Created September 18, 2021 12:25
マージソート
def merge(left, right)
array = []
i = 0
j = 0
loop do
break if left[i].nil? || right[j].nil?
if left[i] < right[j]
array << left[i]
@eggc
eggc / bubble_sort.rb
Created September 18, 2021 05:01
バブルソート
def bubble_sort(array)
array.size.times do |i|
array.size.times do |j|
if array[i] < array[j]
array[i], array[j] = array[j], array[i]
end
end
end
array
@eggc
eggc / quick_sort.rb
Created September 18, 2021 04:15
クイックソート
def partition(array, range)
head = range.first
tail = range.last
pivot = array[head]
loop do
# 取替候補を見つける(pivot以上の値を探す)
head += 1 while head <= tail && array[head] < pivot
tail -= 1 while head <= tail && array[tail] >= pivot
変数の内容を調べるには関数 print で内容を出力する。
この関数の引数には変数名を与える。
scratch バッファで下記のプログラムを実行してみよう。
(defvar my/list '(magit key-chord))
(print my/list)
リスト (magit key-chord) が出力される。
M-x で実行するときは describe-variable のほうがよい。
# recursive version
def fib(x)
(x <= 1) ? 1 : fib(x-2) + fib(x-1)
end
# loop version
def fib(x)
fibs = []
x.times do |i|
fibs[i] = (i <= 1) ? 1 : fibs[i-2] + fibs[i-1]
@eggc
eggc / cueimg2mp3
Created January 27, 2015 07:55
cue, img -> mp3
#!/bin/bash
# img , cue があるディレクトリでこのスクリプトを実行すると mp3 で抽出する。
# 予め bchunk, lame をインストールする必要がある。brew を使うと楽。
IMG_NAME=(*.img)
CUE_NAME=(*.cue)
BASE_NAME=${IMG_NAME%.*} # cut extension
@eggc
eggc / install_guide.sh
Last active November 3, 2019 00:32
ubuntu12 に ruby をインストールする時のガイド
# 【シェル(端末)の開き方】
# ランチャーの一番上の「Dashホーム」ってアイコンを押します。アプリケーションを検索する状態になります。
# term と打ったら「端末」ってアイコンが出るのでそれを押します。
# パッケージリストを更新した後、今後使うパッケージをまとめてインストールします。
sudo apt-get update
sudo apt-get install -y git build-essential libssl-dev libsqlite3-dev nodejs
# rbenv をダウンロードします。(ruby のインストーラだと思ってください)
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv