Skip to content

Instantly share code, notes, and snippets.

View gurimusan's full-sized avatar

gurimusan gurimusan

View GitHub Profile
discard """
Run as following.
$ nim c -r --verbosity:0 helloworld.nim
"""
echo("hello world.")
discard """
Run as following.
$ nim c -r --verbosity:0 fibonacci.nim
"""
proc fibonacci(n: int): int =
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
discard """
Run as following.
$ nim c -r --verbosity:0 insert_sort.nim
"""
proc insert_sort(alist: var seq[int], position: int, value: int) =
var i: int
i = position - 1
while i >= 0 and alist[i] > value:
discard """
Run as following.
$ nim c -r --verbosity:0 quick_sort.nim
"""
proc sort(alist: var seq[int]): seq[int] =
if alist.len == 0:
return alist
discard """
Run as following.
$ nim c -r binary_tree.nim
"""
type
Node*[T] = ref NodeObj[T]
NodeObj[T] = object
left: Node[T]
right: Node[T]
import math
import strutils
proc select_random_pivot_index(anarray: openArray[int], left: int, right: int): int =
## ランダムに 軸値 の添字を決定する。
if left == right:
return left
return random(left..right)

diffってなんだ

2つの要素に対して差分を求めるとは、何が変わっていないのか、何が追加されたのか、何が削除されたのか、求める行為である。

差分を計算するために、下記3つを計算する。

  • 編集距離 (levenshtein distance)
  • 2つの要素の差分を数値化したもの
  • LCS (Longest Common Subsequence)
  • 2つの要素 X と Y の最長共通部分列
# -*- coding: utf-8 -*-
import base64
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric.rsa import RSAPublicNumbers
"""

なぜwebpackを使うのか?

使ってみた雑感。

webpackはbrowserifyの最大の違いは、思想の違い。

browserifyは単一のjsの依存関係の解決し、モジュールを生成することにフォーカス、機能自体もそれに特化している。

webpackは、jsのbundle分割のみならず、cssや画像、web assetsの一式が扱える。

2.1-1

2.1-2

INSERT-SORT(A)
  for j=2 to A.length
    key = A[j]
    i = j-1
    while i>0 かつ A[i]<key
 A[i+1] = A[i]