簡單的演算法和排序

2022-04-14 06:00:25 字數 1760 閱讀 8351

今天總結了下排序簡單的演算法

【自定義排序】

先尋找乙個最小的數,然後依次那這個數和陣列中其他數字比較,如果發現比這個數字小的數就把這兩個數調換位置,然後再繼續尋找下乙個最小的數字進行下一輪比較

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,在每組中再進行排序。...