<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ソート アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<atom:link href="https://nyanblog2222.com/tag/%E3%82%BD%E3%83%BC%E3%83%88/feed/" rel="self" type="application/rss+xml" />
	<link>https://nyanblog2222.com/tag/ソート/</link>
	<description>ちょっとしたことを調べているよ</description>
	<lastBuildDate>Fri, 03 Sep 2021 13:17:10 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://nyanblog2222.com/wp-content/uploads/2021/09/cropped-favicon-32x32.png</url>
	<title>ソート アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<link>https://nyanblog2222.com/tag/ソート/</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>ソートとは【過去問解答解説付き】</title>
		<link>https://nyanblog2222.com/certification/ap/2176/</link>
					<comments>https://nyanblog2222.com/certification/ap/2176/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sun, 30 Aug 2020 03:00:00 +0000</pubDate>
				<category><![CDATA[応用情報技術者試験]]></category>
		<category><![CDATA[資格]]></category>
		<category><![CDATA[AP]]></category>
		<category><![CDATA[ソート]]></category>
		<category><![CDATA[応用情報技術者]]></category>
		<category><![CDATA[解答解説]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2176</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/119.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/119.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/119-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/119-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/119-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />応用情報技術者試験に頻出するソートについてまとめました。 目次 ソートソートとはバブルソート（基本交換法）挿入ソート（基本挿入法）選択ソート（基本選択法）マージソートクイックソートヒープソートシェルソート分割統治法演習問 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/certification/ap/2176/">ソートとは【過去問解答解説付き】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/119.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/119.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/119-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/119-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/119-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>応用情報技術者試験に頻出する<span class="marker-under-red">ソート</span>についてまとめました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ソート</a><ol><li><a href="#toc2" tabindex="0">ソートとは</a></li><li><a href="#toc3" tabindex="0">バブルソート（基本交換法）</a></li><li><a href="#toc4" tabindex="0">挿入ソート（基本挿入法）</a></li><li><a href="#toc5" tabindex="0">選択ソート（基本選択法）</a></li><li><a href="#toc6" tabindex="0">マージソート</a></li><li><a href="#toc7" tabindex="0">クイックソート</a></li><li><a href="#toc8" tabindex="0">ヒープソート</a></li><li><a href="#toc9" tabindex="0">シェルソート</a></li><li><a href="#toc10" tabindex="0">分割統治法</a></li></ol></li><li><a href="#toc11" tabindex="0">演習問題</a><ol><li><a href="#toc12" tabindex="0">応用情報技術者試験　令和元年秋期　午前問8　問題</a></li><li><a href="#toc13" tabindex="0">応用情報技術者試験　令和元年秋期　午前問8　解答</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ソート</span></h2>



<h3 class="wp-block-heading"><span id="toc2">ソートとは</span></h3>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">ソート</span></strong>とは、データを一定のルールに従って<span class="marker-under">昇順・降順に並びかえること</span>です。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="318" height="188" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-0-min.png" alt="" class="wp-image-2201" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-0-min.png 318w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-0-min-300x177.png 300w" sizes="(max-width: 318px) 100vw, 318px" /></figure>



<p>ただ、並びかえるといっても様々な方法がありますので、次項から代表的なソートを説明していきます。</p>



<h3 class="wp-block-heading"><span id="toc3">バブルソート（基本交換法）</span></h3>



<p><span class="marker-under-red">バブルソート</span>とは、隣接する要素を比較して並び替えしていく方法です。<br>要素が小さい（もしくは大きい）ものから浮かび上がるように並び替えされることから、バブル（泡）ソートと呼ばれます。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="420" height="741" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-1-min.png" alt="バブルソート例" class="wp-image-2202" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-1-min.png 420w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-1-min-170x300.png 170w" sizes="(max-width: 420px) 100vw, 420px" /></figure>



<h3 class="wp-block-heading"><span id="toc4">挿入ソート（基本挿入法）</span></h3>



<p><span class="marker-under-red">挿入ソート</span>とは、未整列の要素を含む配列と整列済みの要素を含む配列に分け、<br>未整列の要素と整列済みの要素を比較し、<br>未整列の要素が小さければ（もしくは大きい）、整列済みの配列へ挿入していく方法です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="456" height="837" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-2-min.png" alt="挿入ソート例" class="wp-image-2203" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-2-min.png 456w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-2-min-163x300.png 163w" sizes="auto, (max-width: 456px) 100vw, 456px" /></figure>



<h3 class="wp-block-heading"><span id="toc5">選択ソート（基本選択法）</span></h3>



<p><span class="marker-under-red">選択ソート</span>とは、未整列の要素を含む配列と整列済みの要素を含む配列に分け、未整列の要素の中で最も小さい（もしくは大きい）要素を選択し、整列済みの配列へ挿入していく方法です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="508" height="694" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-3-min.png" alt="選択ソート例" class="wp-image-2204" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-3-min.png 508w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-3-min-220x300.png 220w" sizes="auto, (max-width: 508px) 100vw, 508px" /></figure>



<h3 class="wp-block-heading"><span id="toc6">マージソート</span></h3>



<p><span class="marker-under-red">マージソート</span>は配列を分解していき、１つの要素となるまで分割したら、比較し並べ替えながら配列を併合（マージ）していく方法です。<br>分割統治法の一つです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="582" height="885" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-4-min.png" alt="マージソート例" class="wp-image-2205" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-4-min.png 582w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-4-min-197x300.png 197w" sizes="auto, (max-width: 582px) 100vw, 582px" /></figure>



<h3 class="wp-block-heading"><span id="toc7">クイックソート</span></h3>



<p><span class="marker-under-red">クイックソート</span>は実用上最も高速と言われているソートで、軸要素（配列の先端要素）を決め、軸要素よりも大きいか小さいかで配列を分解していく方法です。<br>分割統治法の一つです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="526" height="363" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-5-min.png" alt="クイックソート例" class="wp-image-2206" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-5-min.png 526w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-5-min-300x207.png 300w" sizes="auto, (max-width: 526px) 100vw, 526px" /></figure>



<h3 class="wp-block-heading"><span id="toc8">ヒープソート</span></h3>



<p><span class="marker-under-red">ヒープソート</span>は配列を二分木にし、ヒープ構造（子要素は親要素より常に大きいか等しい）を作成してから、並び替えしていく方法です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="610" height="765" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-6-min-3.png" alt="ヒープソート例1" class="wp-image-2219" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-6-min-3.png 610w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-6-min-3-239x300.png 239w" sizes="auto, (max-width: 610px) 100vw, 610px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="610" height="837" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-6-2-min-2.png" alt="ヒープソート例2" class="wp-image-2222" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-6-2-min-2.png 610w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-6-2-min-2-219x300.png 219w" sizes="auto, (max-width: 610px) 100vw, 610px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="610" height="385" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-6-3-min-1.png" alt="ヒープソート例3" class="wp-image-2220" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-6-3-min-1.png 610w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-6-3-min-1-300x189.png 300w" sizes="auto, (max-width: 610px) 100vw, 610px" /></figure>



<h3 class="wp-block-heading"><span id="toc9">シェルソート</span></h3>



<p><span class="marker-under-red">シェルソート</span>は挿入ソートの改良版で、一定間隔で取り出した要素で部分配列を作り並び替えてから挿入ソートをする方法です。<br>覚えづらいですが、ドナルド・シェル氏が作ったためシェルソートです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="456" height="956" src="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-7-min-1.png" alt="シェルソート例" class="wp-image-2211" srcset="https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-7-min-1.png 456w, https://nyanblog2222.com/wp-content/uploads/2020/08/AP8-7-min-1-143x300.png 143w" sizes="auto, (max-width: 456px) 100vw, 456px" /></figure>



<h3 class="wp-block-heading"><span id="toc10">分割統治法</span></h3>



<p><span class="marker-under-red">分割統治法</span>とは、問題解決の手段の一つで大きな問題を分割して小さい問題にしていき、簡単に解けるようにする方法です。<br>ソートする際は配列を分割していくため、コードを書く際は再帰的（関数Aの中で関数A（自分自身）を呼び出すこと）に記述する必要があります。</p>



<p>代表的な方法として、マージソートとクイックソートがあります。</p>



<h2 class="wp-block-heading"><span id="toc11">演習問題</span></h2>



<p>実際の試験の過去問を解いてみましょう。</p>



<h3 class="wp-block-heading"><span id="toc12">応用情報技術者試験　令和元年秋期　午前問8　問題</span></h3>



<figure class="wp-block-table"><table><tbody><tr><td><a class="link broken_link" href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31.html">IPA　応用情報技術者試験（AP）　問題より</a><br><br>問8　分割統治を利用した整列法はどれか。<br>選択肢<br>ア　基数ソート<br>イ　クイックソート<br>ウ　選択ソート<br>エ　挿入ソート</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc13">応用情報技術者試験　令和元年秋期　午前問8　解答</span></h3>



<p>分割統治法とは、問題解決の手段の一つで大きな問題を分割して小さい問題にしていき、簡単に解けるようにする方法です。<br>代表的な方法として、<span class="marker-under">マージソートとクイックソート</span>があります。</p>



<p>ア　基数ソート<br>　→桁数毎に並び替えしていくソートです。<br>　　分割統治法ではありません。</p>



<p>イ　クイックソート<br>　→軸要素を決め、軸要素よりも大きいか小さいかで<span class="marker-under">配列を分解していく</span>方法です。<br>　　分割統治法の一つです。</p>



<p>ウ　選択ソート<br>　→未整列の要素を含む配列と整列済みの要素を含む配列に分け、未整列の要素の中で最も小さい（もしくは大きい）要素を選択し、整列済みの配列へ挿入していく方法です。<br>　　分割統治法ではありません。</p>



<p>エ　挿入ソート<br>　→未整列の要素を含む配列と整列済みの要素を含む配列に分け、未整列の要素と整列済みの要素を比較し、未整列の要素が小さければ（もしくは大きい）、整列済みの配列へ挿入していく方法です。<br>　　分割統治法ではありません。</p>



<p>以上から、答えは<strong><span style="color: #b78d4a;" class="has-inline-color">「イ」</span></strong>となります。</p>



<p>ソートの解説は以上です。</p>



<p>こちらに他の応用情報技術者試験のまとめについて掲載していますので、<br>良かったらご覧ください。<br><a class="link" href="https://nyanblog2222.com/?page_id=66">当ブログ「応用情報技術者解答解説」まとめページはこちら</a></p>
<p>投稿 <a href="https://nyanblog2222.com/certification/ap/2176/">ソートとは【過去問解答解説付き】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/certification/ap/2176/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
