來個基礎(chǔ)的算法吧——插入排序
插入排序,聽名字就是把新的元素插入的已有的集合中,畫個圖來看吧
假設(shè)我們有一個待排序數(shù)組 9,12,100,64,78,1
我們將數(shù)組分為兩個部分,一個是已經(jīng)排序的部分,一個是還沒有排序的部分。
這樣的結(jié)構(gòu) 已排序部分 : null 未排序部分: 9,12,100,64,78,1
首先我們在未排序的部分中選取第一個元素 9 ,由于排序部分為空 不需要進行排序操作,直接放進去
已排序部分 9
未排序部分 12 ,100, 64, 78, 1
下面執(zhí)行第二步 再在未排序部分取一個元素 12 放入已排序部分中,比較已排序部分的大小,如果比9大,放在9的右邊;
下一步 在未排序部分再取下一個元素 100 ,放入已排序的部分中,如果比12大 放在12的右邊 ;
下一步 取出64 比100小 比較100左邊的數(shù)12 比12大 放在12的右邊 100的左邊,依次下去直到所有未排序的部分都轉(zhuǎn)移到排序的部分中,當(dāng)然 這只是理解代碼并不是需要兩個集合的。
分析一下排序過程,首先我們的變量是需要排序的元素,或者說是這個元素的索引或者說是已經(jīng)排序的元素數(shù)量,考慮到迭代的思想,那么我們的方法應(yīng)該以 目標(biāo)索引和數(shù)據(jù)數(shù)組為參數(shù)進行操作,返回值為操作一步后的數(shù)組
插入排序的插入操作
運行過程