最近沒有好好寫部落格了,接下來又有幾門考試就隔幾天更新一下吧~
今天學習了插入排序,是排序中很簡單的一種,效率不是很高。但比較穩定。主要思想是,遍歷一遍陣列,將陣列集合分為r[0]~r[i]和r[i+1]~r[n]兩個,前者是排好序的有序集合,後者是亂序的。每次將r[i+1]個和前面排好序的關鍵字依次進行比較,從而找到r[i+1]應該插入的位置j,並將r[j]之後的值統一後移一位.
實現過程中通過雙層迴圈,首先最好的情況就是已經排好的,那麼每趟比較1次,移動0次。最壞的情況下,就是逆序。這時每一趟都需要比較依次並且移動。取兩者的平均情況,其時間複雜度為o(n2)。
js**如下:
function arraysort(data)
//插入排序
arraysort.prototype.insert_sort = function()
else
if (i == 0)
i--;}}
});this.desc_sort = result.concat();
return this;
};
每天一演算法 (插入排序)
一 原理 插入排序就是把當前待排序的元素插入到乙個已經排好序的列表裡面。對於給定的一組記錄,初始時假定第乙個記錄自成乙個有序序列,其餘記錄為無序序列。接著從第二個記錄開始,按照記錄的大小依次將當前處理的記錄插入到其之前的有序序列中,直到最後乙個記錄插到有序序列中為止。二 思路 1.在要排序的一組數中...
資料結構之插入排序 折半插入排序
排序思路 通過折半查詢的方式找到合適的插入位置再插入。演算法實現 public class biinsertsort else 插入點在 mid 1,right left mid 1 直到找到合適的位置 left或right 1 接下來就將left right 1後的元素後移 for int j i...
資料結構之 插入排序
包括 直接插入排序,二分插入排序 又稱折半插入排序 鍊錶插入排序,希爾排序 又稱縮小增量排序 假定這個陣列的序是排好的,然後從頭往後,如果有數比當前外層元素的值大,則將這個數的位置往後挪,直到當前外層元素的值大於或等於它前面的位置為止.這具演算法在排完前k個數之後,可以保證a 1 k 是區域性有序的...