// 基本情報技術アルゴリズムH19春 空欄あり #include #include // 挿入ソートの関数 // A[]: 配列, N: 整列する区間の最後の要素番号 (0から数える) void InsertSort(int A[], int N) { int Idx1, Idx2, Tmp; bool Loop; // 外側のループ: Idx1を1からNまで増やしていく for (Idx1 = 1; Idx1 <= N; Idx1++) { Tmp = A[Idx1]; // (a) に相当する処理 Idx2 = [ a ]; // Loop = true; // 内側のループ: 挿入場所を探しながら要素をずらす while (Idx2 >= 0 && Loop == true) { // 条件α: A[Idx2] > Tmp if (A[Idx2] > Tmp) { [ b ]; // 空欄 b: Idx2 = Idx2 - 1; } else { Loop = false; } } [ c ]; // 空欄 c: } } // 配列を表示するための補助関数 void printArray(int A[], int size) { for (int i = 0; i < size; i++) { printf("%d ", A[i]); } printf("\n"); } int main() { // 例1のデータでテスト int example1[] = {0, 1, 4, 3, 2, 5, 6}; int n1 = 6; // 要素数-1 printf("整列前: "); printArray(example1, n1 + 1); InsertSort(example1, n1); printf("整列後: "); printArray(example1, n1 + 1); return 0; }