by alexander white ©
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void init(Local<Object> exports) { | |
NODE_SET_METHOD(exports, "hello", Method); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <node.h> | |
namespace demo { | |
using v8::FunctionCallbackInfo; | |
using v8::Isolate; | |
using v8::Local; | |
using v8::Object; | |
using v8::String; | |
using v8::Value; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func merge_sort_async(l []int, c chan []int) { | |
if len(l) < 2 { | |
c <- l | |
return | |
} | |
if len(l) < 500 { //TUNE THIS NUMER AND DONT CREATE EXTRA WORK UNLESS IT'S BIGGER | |
c <- merge_sort(l) | |
return | |
} | |
mid := len(l) / 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ go test -bench=. -benchtime 10s mergesort_test.go | |
testing: warning: no tests to run | |
PASS | |
BenchmarkMSAsync 1 88944871528 ns/op | |
ok command-line-arguments 92.272s |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func mergeSortAsync(l []int, c chan []int) { | |
if len(l) < 2 { | |
c <- l | |
return | |
} | |
mid := len(l) / 2 | |
c1 := make(chan []int, 1) | |
c2 := make(chan []int, 1) | |
go mergeSortAsync(l[:mid], c1) | |
go mergeSortAsync(l[mid:], c2) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ go test -bench=. -cpu 4 -benchtime 10s mergesort_test.go | |
testing: warning: no tests to run | |
PASS | |
BenchmarkMSAsync-4 10 1450210929 ns/op | |
ok command-line-arguments 20.887s | |
$ go test -bench=. -cpu 4 -benchtime 10s quicksort_test.go | |
testing: warning: no tests to run | |
PASS | |
BenchmarkQS-4 5 2101334470 ns/op |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import "sort" | |
func main() { | |
arr := []int{2,4,3,1} | |
sort.Ints(arr) | |
fmt.Println(arr) // => [1,2,3,4] | |
} |
by alexander white ©
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def perm arr, i=0 | |
return p arr if i == arr.size | |
(i..arr.size-1).each do |j| | |
arr[i], arr[j] = arr[j], arr[i] | |
perm arr, i+1 | |
arr[i], arr[j] = arr[j], arr[i] | |
end | |
end | |
perm 'ABC' |