This commit is contained in:
2026-04-21 09:43:01 +09:00
parent e8c1f49f70
commit a7200482d8
12 changed files with 364 additions and 1 deletions
+80
View File
@@ -0,0 +1,80 @@
\documentclass[xelatex,a4paper,11pt,ja=standard]{bxjsarticle}
\usepackage{tex/preamble}
\usepackage{tex/detailed-title}
\usepackage{multirow}
\reportauthor{柴田健琉}
\reporttitle{前期第2回課題}
\reportdate{2026年}{04月}{20日}
\turnindate{2026年}{04月}{21日}
\schoolname{岐阜工業高等専門学校}
\department{電子制御工学科}
\subject{情報処理2}
\professor{遠藤 登}
\studentid{2024D14}
\seatingnum{15}
\begin{document}
\detailedtitle
\section{はじめに}
この課題のプログラムは以下の環境での実行が確認されている:
\begin{itemize}
\item{OS: NixOS 25.11, Linux 6.19.12}
\item{GCC: 15.2.0}
\item{コンパイラフラグ: \texttt{-g -O1 -Wall -Wpedantic}}
\end{itemize}
\section{下準備:並び換えるデータの用意}
課題に使用するデータはLinuxの\texttt{/dev/urandom}で以下のbashコマンドで生成した.
\begin{lstlisting}[language=bash,title={乱数配列生成コマンド(Xに任意の個数)}]
$ sed '1i\#pragma once\' <(head -c X /dev/urandom | xxd -iC -n dataX) > dataX.h
\end{lstlisting}
出力されるヘッダーファイルには\texttt{unsigned char}型の乱数配列\texttt{dataX}と配列の長さ\texttt{dataX\_len}が格納されている.
\lstinputlisting[language=C,title={\texttt{data10.h}}]{src/cls02/data10.h}
\lstinputlisting[language=C,title={\texttt{data100.h}},linerange={1-3,11-13},consecutivenumbers={false}]{src/cls02/data100.h}
\lstinputlisting[language=C,title={\texttt{data1000.h}},linerange={1-3,86-88},consecutivenumbers={false}]{src/cls02/data1000.h}
\newpage
\section{課題:3つのソートアルゴリズム}
10個, 100個, 1000個の乱数データに対し, 単純交換・単純選択・単純挿入ソートを実行し, 交換回数・比較回数を記録する.
\lstinputlisting[language=C,title={3つのソートアルゴリズム}]{src/cls02/main.c}
\subsection{実行結果}
\begin{figure}[tbh]
\centering
\includegraphics[width=12cm]{assets/cls02.png}
\caption{実行結果}
\end{figure}
\begin{table}[!ht]
\centering
\begin{tabular}{c|c|c|c|c|c|c}
\hline
\multirow{2}{6em}{データ数} & \multicolumn{2}{|c|}{単純交換} & \multicolumn{2}{|c|}{単純選択} & \multicolumn{2}{c}{単純挿入} \\
\cline{2-7}
& 比較 & 交換 & 比較 & 交換 & 比較 & 交換 \\
\hline
10 & 81 & 20 & 55 & 10 & 45 & 20 \\
100 & 9801 & 2571 & 5050 & 100 & 4950 & 2205 \\
1000 & 998001 & 243054 & 500500 & 1000 & 499500 & 94085 \\
\hline
\end{tabular}
\caption{ソートアルゴリズムとデータ数での比較・交換回数}
\end{table}
\appendix
\section{付録}
\input{dev-env.tex}
\end{document}