今天總結了下排序簡單的演算法
【自定義排序】
先尋找乙個最小的數,然後依次那這個數和陣列中其他數字比較,如果發現比這個數字小的數就把這兩個數調換位置,然後再繼續尋找下乙個最小的數字進行下一輪比較
var arr = [31,6,19,8,2,3];
function findmin(start,arr)
function find1(n,arr)else if(s==e)else
}var c = math.floor((s+e)/2);
if(arr[c]==n)else
}alert(find2(34,0,arr.length-1));//true false
【邊界處理】-----遞迴,一層一層往下找
//要求陣列不重複有順序\
var arr=[12,23,34,45,56,67,78]
function find2(n,s,e)else if(s==e)else
}var c=math.floor((s+e)/2);
if(arr[c]==n)elseelse if(s==e)else if(s == e-1)else if(s==e)else if(s == e-1)else
}var c = math.floor((s+e)/2);
var l = removecopy(s,c);
var r = removecopy(c+1,e);
for(var i = 0;i【陣列排序】
var arr = [34,32,1,76,55,-100,99,101];
function mysort(s,e)else if(s==e)else if(s == e-1)
//1.切中間值
var c = math.floor((s+e)/2);
//2.分半處理
var l = mysort(s,c);
var r = mysort(c+1,e);
var res = ;
while(l.length>0||r.length>0)}}
return arr;
}document.write(bubblesort(arr));
【快速排序】 -------quicksort
取陣列中間的數,比中間數小的房中間數左邊,比中間數大的放右邊,再把兩遍鏈結起來
function quicksort(arr,s,e)
var c=math.floor((s+e)/2);
var arrc=arr.splice(c,1);
var l=;
var r=;
for(var i=0; ivar arr=[5,5,12,56,1,67,-1,-23-1];
document.write(quicksort(arr,0,arr.length-1));
【雜湊】 hash 雜湊 陣列 ------js常用用的結構
新增var arr=;
arr.length=0;
var cont=0;
function hash_add(n)else}}
arr[pos]=n;
}else
//空間不足的時候的擴建
if(cont==arr.length){
//d等唄擴建
var oldarr=arr;
arr.length=oldarr.length*2;
arr=;
for(var i=0;ihash_add();
JAVA演算法的簡單了解 簡單排序演算法和冒泡演算法
public class paixu int arr1 duotai1.selectionsort arr duotai1.maopao arr1 system.out.println arrays.tostring arr system.out.println arrays.tostring ar...
簡單的排序演算法
排序演算法 需要排序的陣列 let nums 5,1 2,3 4 6,9,7,10,8 let nums 1,6,5 class sortclass quicksort 找出乙個基準值a,把比a小的放入左邊,比a大的放入右邊 可以隨機獲得a 平均時間複雜度為 o nlogn param left p...
排序演算法簡單演算法
1 直接插入排序 把後面未排序部分的首個數插入到前面已排序部分的正確位置上去,直到全部排好順序。直接插入排序是穩定的,演算法時間複雜度o n 2 2 shell排序 將要排序的一組數按某個增量g分成若干組,每組中記錄的下標相差g。對每組中全部元素進行直接插入排序,然後縮小增量g,在每組中再進行排序。...