Sorting

バブルソートは諦めて選択ソート

さっきのやつを修正した.今回はちゃんと動いているぽい. #!/usr/bin/env gosh (define (selectsort listdata) (define (exceptmax lst) (if (pair? lst) (if (= (fold max -1 lst) (car lst)) (cdr lst) (append (list (car lst)) (exceptmax (cdr lst))) …

Gauche3日目にして

さっきまでのプログラムをよく見たら(別データで試したら)全然ソーティングできてなかった(恥 というかめちゃくちゃだった. 直します….

Gauche3日目

注:このプログラムは間違えています. 昨日のBubbleSortをもうちょっと修正. letを使って複数出てくる(bsort-swap (car lstdata) (cdr lstdata))をまとめた. #!/usr/bin/env gosh (define (bsort lstdata) (define (bsort-swap x lst) (if (pair? lst) (i…

さらにGauche2日目

defineの中でさらにdefineできるらしい.ある関数Aからしか呼ばれないようなローカルな関数(?)Bを作る場合は,関数Aの定義内でBを定義する方が良い. そこで,バブルソートを修正. 注:このプログラムは間違えています. #!/usr/bin/env gosh (define (b…

Gaucheでバブルソート

FizzBuzzしたし,とりあえずソーティングでもやってみるか〜と思ってバブルソートしてみた. ら,鬼のようにむずかった(涙 Gauche1日目にして無茶した.注:このプログラムは間違えています. #!/usr/bin/env gosh (define bsort-swap (lambda (x lst) (if …

InsertionSort(挿入ソート:基本挿入法)(Ruby編)

InsertionSort(挿入ソート:基本挿入法)のRubyによる実装 def insertionsort(array) ret = [] array.each do | val | inspoint = ret.size ret.each_with_index do | rval, index | if val < rval inspoint=index break end end ret.insert(inspoint,val) …

InsertionSort(挿入ソート:基本挿入法)(C言語編)

InsertionSort(挿入ソート:基本挿入法)のC言語による実装 #include "insertion.h" void insertionsort(int *array,int size){ int i,j,k; int temp; // 挿入対象ごとに繰り返し for(i=0;i

InsertionSort(挿入ソート:基本挿入法)

ソート済みの列に対し,未整列データをひとつずつ挿入していく. 配列は挿入が苦手なため,リスト構造などを用いて実現することが多い. 5 4 3 6 2が入力された場合,先頭の5がソート済み列であるとして, 4 5 3 6 2 # 4を5の前へ挿入,4 5 がソート済み列 3…

BubbleSort(バブルソート:基本交換法)(C言語編)

BubbleSort(バブルソート:基本交換法)のC言語による実装. /** * @file bubble.c * @author yasutomo57jp * */ #include "mylib.h" /** * @brief バブルソート * * @param array ソート対象の配列 * @param size 配列の大きさ */ void bubblesort(int *ar…

BubbleSort(バブルソート:基本交換法)(Ruby編)

BubbleSort(バブルソート:基本交換法)のRubyによる実装. def bubblesort(array) for i in 0...array.length-1 for j in 0...array.length-1-i array[j+1],array[j]=array[j],array[j+1] if array[j] > array[j+1] end end return array end Rubyは多値代…

Sortingのための準備(Ruby編)の修正

ここで書いたコードを次のように修正. test.rbのsortのインタフェースを若干修正 require "mylib.rb" # 配列に読み込む array=load_array # ここでソート # array=bubblesort(array) # 配列を出力 print_array(array)

BubbleSort(バブルソート:基本交換法)

隣り合うものの大小を比較して,交換する. 5 4 3 6 2が入力された場合, 4 5 3 6 2 4 3 5 6 2 4 3 5 6 2 4 3 5 2 6 n(=4)回の処理でこうなる.これで,最大の要素が最後尾にくる. 次に,同じことを,最後から2番目の要素までに対して適用する. 3 4 5 2 6 …

BubbleSort(バブルソート:基本交換法)(C++編)

BubbleSort(バブルソート:基本交換法)のC言語による実装. まずmylib.cppに次を追加. /** * @brief 値を交換する * * @param i 入力値1 * @param j 入力値2 */ void swap(int &i,int &j){ int temp=i; i=j; j=temp; } 次にバブルソート本体. /** * @fil…

Sortingのための準備(Ruby編)

調子に乗ってRubyでも一つ前のエントリと同じのをやってみた. def load_array() array=[] while str=gets array += str.split(" ") end return array end def print_array(array) array.each_with_index do |x,index| printf("%8d",x) print "\n" if index …

Sortingのための準備(C言語編)

まずはC言語で.標準入力から可変個のデータを読み込む関数と,それを出力する関数を作ってみた.mylib.cとして保存しておく. #include "mylib.h" /** * @brief 配列にデータを標準入力から読み込む * * @param size 配列の大きさ * * @return 配列 */ int …

Sortingのための準備(C++編)

まだやってるよこの人・・・と言うわけで、C++でも書いてみた. まずはヘッダファイルmylib.hから. /** * @file mylib.h * @autor yasutomo57jp * */ #include <vector> #include <string> #include <iostream> #include <iomanip> #include <cstdlib> std::vector<int> load_array(); void print_array(const</int></cstdlib></iomanip></iostream></string></vector>…