注意不同點:直接插入排序重點在已排序部分,在排序剛開始時就把陣列第乙個元素作為已排序部分。每次都把未排序部分的第乙個元素與已排序部分比較找到插入位置,這樣才可保證排序。
void insertsortarray(int arr , int n)
arr[j+1]=temp;
} }
因為重點在於已排序部分陣列的作用,第一次定陣列首項為已排序部分,接下來的i-1
次比較均是未排序部分的首項與前面已排部分的插入。每次比較,將未排部分首項(注意用
temp
表示,因為可能被覆蓋)與前項比,如果小於前項則前項整體向後平移,直到遇到比
temp
小的項停止。這時就找到了該項的插入位置(由於是和已排好部分比較,故遇見比其小的項之前一定都比其小),這就是直接插入排序。
直接插入排序 學習筆記 詳解直接插入排序
直接插入排序 straight insertion sort 是一種簡單的排序方法,是一種插入類排序。其基本操作是將一條記錄插入到已排好的有序表中,從而得到乙個新的 記錄數量增1的有序表。將乙個記錄插入到已排好序的序列中,從而得到乙個新的有序序列 將序列的第乙個資料看成是乙個有序的子串行,然後從第二...
直接插入排序學習
直接插入排序 1 從未排序的第乙個元素開始,和前乙個已排好序的元素相比較,如果小於前乙個元素就交換位置,並繼續與前乙個元素比較,大於則跳出當前這一層的迴圈,這樣當前元素與原來已排好序的元素,組成乙個新的已經排好序的序列 原陣列包含 0 i 已排好序的序列與 i lenght 1 未排好序的序列 第乙...
直接插入排序
直接插入排序是一種最簡單的排序方法,它的基本思想是依次將每個記錄插入到乙個有序中去。就是說,第i i 1 遍整理時,a1,a2,ai 1已經是排好序的子串行 取出第i個元素ai,在已排好序的子串行為ai找到乙個合適的位置,並將它插到該位置上。易知上述排序當i 1時實際上為空操作,故可直接從i 2開始...