【C言語】自作ソート関数が配列を並べ替える様を眺める
概要
勉強でソート関数を作ったのですが、それだけだと味気なかったので、手塩にかけた関数がソートする様を見ることのできる関数を作りました。
アルゴリズムによっては対応できないものがあったり、並べ替える対象を決める処理を視覚化できるわけではないので、実用性はほぼありません。観賞用です。
(対応するのもint型の配列を並べ替えるものです。)
使用例
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include "sort_visualize.h" #define ARRAY_NUM 10 void bubble_sort(int*, int); /* int型配列を監視して、ソートの様子を表示するプログラム */ int main() { int arr[ARRAY_NUM] = { 24, 33, 22, 10, 22, 12, 55, 10, 100, 12 }; start_sort(bubble_sort, arr, ARRAY_NUM); return 0; } /*一般的なバブルソート*/ void bubble_sort(int* arr, int arr_num) { for (int i = 0; i < arr_num; i++) { for (int j = 0; j < arr_num - i - 1; j++) { if (arr[j] > arr[j + 1]) { visualize_swap(arr + j, arr + j + 1); /*入れ替え*/ } } } return; }
ソースコード・用法
- 下のソースコード
sort_visualize.c
とsort_visualize.
をインクルードします。 - 自作のソート関数内で入れ換えるタイミングでインクルードした入れ替え関数
visualize_swap
を用いて入れ換えるように作ります。 - 作成した関数と入れ換える対象となる配列とその要素数をインクルードした
start_sort
関数に引数として渡して実行します。
gist0e2ed927b2407ab720ace9bc59f2c375
Go言語でも書いてみたいなぁ