1.插入類排序
插入類排序的思想是:在一個已排好序的序列區內,對待排序的無序序列中的記錄逐個進行處理,每一步都講待排序的記錄和已排好的序列中的記錄進行比較,然后有序的插入到該序列中,直到所有待排序的記錄全部插入為止。
(1)直接插入排序(基於順序查找)
思想:每次從無序表中取出第一個元素,把它插入到有序表的合適位置,使有序表仍然有序。
第一趟比較前兩個數,然后把第二個數按大小插入到有序表中;
第二趟把第三個數據與前兩個數從后向前掃描,把第三個數按大小插入到有序表中;
依次進行下去,進行了(n-1)趟掃描以后就完成了整個排序過程。
效率:
時間復雜度:平均O(n^2),不適合對於數據量比較大的排序應用。
空間復雜度:O(1)
穩定性:穩定
js代碼:
function sort(elements){ for(var i = 1; i < elements.length; i++){ if(elements[i] < elements[i-1]){ var guard = elements[i]; var j = i - 1; elements[i] = elements[j]; while(j >= 0 && guard < elements[j]){ elements[j+1] = elements[j]; j--; } elements[j+1] = guard; } } }