基于JavaScript實現的插入排序算法分析
本文實例講述了基于JavaScript實現的插入排序算法。分享給大家供大家參考,具體如下:
根據排序過程中使用的存儲器不同,可以將排序方法分為兩大類:內部排序和外部排序。
內部排序是指待排序記錄存放在計算機隨機存儲器中進行的排序過程;外部排序指的是待排序的記錄數量很大,以致內存一次不能容納全部記錄,在排序過程中尚需對外存進行訪問的排序過程。
下面介紹幾種常見的內部排序方式:
插入排序
插入排序是一種最簡單的排序方法,它的基本操作是將一個記錄插入已排好序的有序表中,從而得到一個新的、記錄數加1的有序表。
插入排序有兩個循環(huán),外循環(huán)將數組元素挨個移動,而內循環(huán)則對外循環(huán)中選定的元素及它后面的那個元素比較。如果外循環(huán)中選中元素小,那么數組元素會向右移動,為內循環(huán)中的這個元素騰出位置。
下面我們通過js實現直接插入排序過程:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JavaScript插入排序</title> </head> <body> <script type="text/javascript"> function insertSort(nums){//插入排序 var temp, inner; for(var outer=1;outer<nums.length;outer++){//外循環(huán)選中元素 temp=nums[outer];//選中元素 inner=outer; while(inner>0&&(nums[inner-1]>=temp)){//內循環(huán)與選中元素對比 nums[inner]=nums[inner-1];//如果選中元素前面的元素大,則前面的元素移到右側 inner--;//依次比較 } nums[inner]=temp;//直到找到正確的位置 } } function show(nums){//顯示數組 for(var i=0;i<nums.length;i++){ document.write(nums[i]+' '); } document.write('<br>'); } var nums=[6,10,0,6,5,8,7,4,2,7]; show(nums);//6 10 0 6 5 8 7 4 2 7 insertSort(nums); show(nums);//0 2 4 5 6 6 7 7 8 10 </script> </body> </html>
排序過程如下:
可以看到,插入排序的運行并非通過數據交換,而是通過將較大的數組元素移動到右側,為數組左側的較小元素騰出位置。其時間復雜度為O(n2)。
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數據結構與算法技巧總結》、《JavaScript數學運算用法總結》、《JavaScript排序算法總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。