JS基本演算法

2022-08-17 14:00:23 字數 2036 閱讀 5798

知識擴充:

時間複雜度:演算法的時間複雜度是乙個函式,描述了演算法的執行時間。時間複雜度越低,效率越高。

自我理解:乙個演算法,執行了幾次時間複雜度就為多少,如執行了n次,則時間複雜度為o(n)。

1.氣泡排序

解析:1

.比較相鄰的兩個元素,如果前乙個比後乙個大,則交換位置。

2.第一輪的時候最後乙個元素應該是最大的乙個。

3.按照步驟一的方法進行相鄰兩個元素的比較,這個時候由於最後乙個元素已經是最大的了,所以最後乙個元素不用比較。

複製** 1

function sort(elements) 9

}10}11

}1213var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8

];14 console.log('

before:

' +elements);

15sort(elements);

16 console.log('

after:

' +elements);

複製**

2.快速排序

解析:快速排序是對氣泡排序的一種改進,第一趟排序時將資料分成兩部分,一部分比另一部分的所有資料都要小。然後遞迴呼叫,在兩邊都實行快速排序。

複製**

function quicksort(elements)

var pivotindex = math.floor(elements.length / 2);

var pivot = elements.splice(pivotindex, 1)[0];

var left =;   

var right =;   

for (var i = 0; i < elements.length; i++)

else

}   

return

quicksort(left).concat([pivot], quicksort(right)); };

var elements=[5,6,2,1,3,8,7,1.2,5.5,4.5

];alert(quicksort(elements));

複製**

3.插入排序

解析:(

1) 從第乙個元素開始,該元素可以認為已經被排序(2

) 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄(3

) 如果該元素(已排序)大於新元素,將該元素移到下一位置(4

) 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置(5

)將新元素插入到下一位置中(6

) 重複步驟2

複製** 1

insertsort: function(elements) else17}

1819 elements[j + 1] =key;20}

2122

return

elements;23}

複製** 2

.二分查詢

解析:二分查詢,也為折半查詢。首先要找到乙個中間值,通過與中間值比較,大的放又,小的放在左邊。再在兩邊中尋找中間值,持續以上操作,直到找到所在位置為止。(1

)遞迴方法

複製** 1

function binarysearch(data,item,start,end)else

if(item12return

false;13

}1415var arr=[34,12,5,123,2,745,32,4

];16

17 binary(arr,5

);複製** (2

)非遞迴方法

複製** 1

function binarysearch(data, item) 9

if(item >data[m])else14}

1516

return

false;17

}18var arr=[34,12,5,123,2,745,32,4

];19 binarysearch(arr,5

);複製**

js基本排序演算法(遞增)

原理 先找出當前陣列中最大的那個放到最後 步驟 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個 資料交換。這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。n n 1,如果n不為0就重複前面二步,否則排序完成。function bubble...

js版基本排序演算法

在每一輪資料比較中,在每一次兩者資料比較中,當前者值大於後者 後者值大於前者 需要進行公升序 降序 排列時,將其兩者數值進行調換,每一輪中可能有n次數值交換,總共可能需要進行 n 1 輪,其中o n 2 氣泡排序是一種嚴格的穩定排序演算法,它不改變序列中相同元素之間的相對位置關係。譬如對陣列中儲存的...

js基本基礎

js 基礎 arr.push list 在陣列末尾新增list值 var item arr.pop 取出陣列中的最後一項,刪除陣列的最後一項,並返回最後一項的值 var item arr.shift 取出陣列中的第一項,並返回 arr.unshift list 向陣列的第一項推入list值 arr....