?计数排序
var arr = [100,100,54,62,80,3,25,91,11,34,49,62,100,3,11]
var tmparr = [] //创建一个空数组,等待接收数据
for (var i = 0; i < arr.length; i++) {
if(tmparr[arr[i]] !== undefined) { //arr[1]=100,==>tmparr[100]!==undefined
tmparr[arr[i]]++ //tmparr[100]!==undefined==>tmparr[100]=2
} else {
tmparr[arr[i]] = 1 //tmparr[100]===undefined==>tmparr[100]=1
}}
// console.log(tmparr)
arr.length = 0 //清空数组
for (var i = 0; i <= tmparr.length; i++) {
if(tmparr[i]===undefined) continue //当tmparr的第 i 个为空的时候,跳过执行。
console.log(i,tmparr[i]);
for(var j = 1; j <= tmparr[i]; j++){ //通过循环判断tmparr第 i 个有几个数据,
arr[arr.length]=i //将i添加到数据里面
}}
console.log(arr);
冒泡排序
var arr = [9,8,10,6,3,100,2,1/2,7,5,4]
for (var i = 0; i <= arr.length - 1; i++) {
for (var j = 0; j <= arr.length - 1 - i; j++) {
if(arr[j]>arr[j+1]){
var tmp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = tmp}}}
console.log(arr);
选择排序
var arr = [9, 3, 7, 4, 1, 8, 6, 5, 2]
for (var i = 0; i < arr.length-1; i++) {
var min = i //获取arr[]的索引
for (var j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[min]) {
min = j
}}
//交换位置
var tmp = arr[i]
arr[i] = arr[min]
arr[min] = tmp
console.log(arr);
}
console.log(arr);
|