演算法1 排序

2022-03-23 10:09:35 字數 2110 閱讀 1814

①.氣泡排序

//

氣泡排序,比較相鄰的元素由小到大排序

function

bubblesort(arr)

}}

return

arr;

}

view code

②.快速排序  (**)

以基數為標準,最右開始查小於基數停止,最左邊開始查大於基數停止,互換位置停止的位置;left=right表示基數左為小於基數,基數右大於基數的;拆分基數左右在小組比,直到arr.length < 2;

var arr=[5,7,2,9,3,8,4,7,1];

//每次選擇最左邊的數作為基數

function

quicksort(arr)

//定義左指標,右指標

let left=0,right=arr.length-1;

//開啟每一輪的排序

while(left

//尋找左邊比arr[0]大的數的下標

while(arr[left]<=arr[0] && left

//當左邊指標與右邊指標相遇後,交換arr[0]與當前兩個指標所在的元素

if (right==left)

//當左指標小於右指標的位置,交換兩個指標當前位置的元素

let tem=arr[right];

arr[right]=arr[left];

arr[left]=tem;

} //

遞迴實現

return quicksort(arr.slice(0,left)).concat(arr.slice(left,right+1)).concat(quicksort(arr.slice(right+1)));}//

對陣列進行排序

基數6③.二路歸併(分治演算法思想)

將兩個按值有序序列合併成乙個按值有序序列,則稱之為二路歸併排序

function

merge(left, right)

else

} return

result.concat(left, right);

}function

mergesort(arr)

//造乙個空陣列,把舊陣列每個值轉換為陣列,並賦予空陣列(深拷貝)

var work =;

for (var i = 0, len = arr.length; i < len; i++)

work.push();

//如果陣列長度為奇數

for (var lim = len; lim > 1; lim = ~~((lim + 1) / 2))

work[j] = ; //

如果陣列長度為奇數}

return work[0];}/*

[1,5,3,4]

// 分

[1][5],[6][4]

[1,5],[4,6]

// 合迴圈

③sort函式

let arr = [

, ,

, ,

, ,

, ,

, ,

, ]arr.sort(function(a,b))

console.log(arr)

階乘:小於及等於該數的正整數的積(n! = 1*2*3*4...*n)

1.body

hexadecimal code(十六進製制編碼),簡寫為hex code

decimals,也就是十進位制數字

十六進製制數字的資訊

演算法 排序1 排序

題目 給定n個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 輸入第一行給出正整數n 10 5 隨後一行給出n個 長整型範圍內的 整數,其間以空格分隔。在一行中輸出從小到大排序後的結果,數字間以1個空格分隔,行末不得...

09 排序1 排序

09 排序1 排序 25 分 給定n 個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 include include includeusing namespace std const int cutoff 1000...

09 排序1 排序

n個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。資料2 11個不相同的整數,測試基本正確性 資料3 10 3個隨機整數 資料4 10 4個隨機整數 資料5 10 5個隨機整數 資料6 10 5個順序整數 資料7 10 5個逆序整數 資料8 10 5個基本有序的整數 資料9 10 5個隨機正...