插入排序的基本思想是:直接對n個數進行排序很困難,但如果已經有乙個有序的資料序列,要求在這個序列裡插入乙個數,並要求插入之後仍然有序,那麼這個時候就要用到插入排序法。插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料,這種思想就是減一法的集中體現,當然,插入排序是從乙個元素開始的,因為乙個元素一定是有序的,然後對於剩下的n-1個元素逐個插入,這樣就可以得到n個元素的有序序列。
以下演算法介紹最簡單的直接插入排序,對已經有序的序列進行從右向左的掃瞄,遇到的第乙個不大於待插入元素的右側便是要插入元素的位置,當遇到大於待插入元素的時候,可以直接將這個元素向左移動一位,正好可以空開位置。
#include #include void sort(int a)
a[j+1]=v; //找到小於待插入元素的元素(或者到了陣列的最左邊),在它的右邊插入待插入元素。
}}int main()
; int i=0;
sort(a);
for (i=0;i<10;i++)
return 0;
}
排序演算法之插入排序法
無論是c語言相關書籍還是演算法等等,很多種書籍上都有介紹排序演算法,而排序演算法重要的在於它的思想,這也是乙個程式的靈魂,相信大家也早都知道。在此,我簡單介紹一下插入排序法的基本思想,以供一些初學者及掌握不深的學習人員作乙個參考。其中,插入排序法的核心思想是 通過while的迴圈判斷語句,從第二個數...
插入排序之 直接插入排序 法
基本思想 將乙個記錄插入到已排序好的有序陣列中,從而得到乙個新陣列,記錄數增1的有序陣列。即 先將序列的第1個記錄看成是乙個有序的子串行,然後從第2個記錄逐個進行插入,直至整個序列有序為止。要點 設立標誌,作為臨時儲存和判斷陣列邊界之用。說明 1.準備乙個陣列 2.原理 從第二個數開始,往前面插入 ...
插入排序法
插入排序原理很簡單,講一組資料分成兩組,我分別將其稱為有序組與待插入組。每次從待插入組中取出乙個元素,與有序組的元素進行比較,並找到合適的位置,將該元素插到有序組當中。就這樣,每次插入乙個元素,有序組增加,待插入組減少。直到待插入組元素個數為0。當然,插入過程中涉及到了元素的移動。為了排序方便,我們...