[HackerRank]插入排序法2(Insertion Sort - Part 2)

題目描述

給定一個沒有經過排序的陣列,請使用插入排序法將這個陣列排序好,並將每次把元素移動到正確位置時的過程輸出。

原題網址

https://www.hackerrank.com/challenges/insertionsort2

輸入格式

輸入有兩行。第一行是陣列的大小,範圍在1到1000之間(包含1和1000)。第二行是陣列的所有元素,每個元素都是範圍-10000到10000(包含-10000到10000)的整數,使用空格隔開。

輸出格式

分行輸出排序時元素移動到正確位置時的過程。

範例輸入

6
1 4 3 5 6 2

範例輸出

1 4 3 5 6 2
1 3 4 5 6 2
1 3 4 5 6 2
1 3 4 5 6 2
1 2 3 4 5 6

額外解釋

有關於插入排序法的介紹可以參考以下這篇文章:

https://magiclen.org/sorting-algorithm/

一開始,排序好的子陣列尚未建立,因此直接將索引0的元素作為進入子陣列的第一個元素。再來要將之後的元素插入至這個子陣列中,並確保子陣列元素的順序,插入元素的過程如下:

解題概念

從陣列的索引1開始,將之後的元素透過插入排序法插入至之前的元素所組成的已排序好的陣列中。原理還是一樣請參考以下這篇文章:

https://magiclen.org/sorting-algorithm/

參考答案

關於作者

Magic Len

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章