function bubbleSort(array) {
var length=array.length;
for(var i = 0;i<length;i++){
for(var j = 0;j<length-1;j++){
if(array[j]>array[j+1]){
var temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
return array;
}
function ModifybubbleSort(array) {
var length=array.length;
for(var i = 0;i<length;i++){
for(var j = 0;j< length - 1;j++){
if(array[j]>array[j + 1]){
var temp=array[j];
array[j]=array[j + 1];
array[j+1]=temp;
}
}
}
return array;
}
var selectionSort=function(array){
var length=array.length,min;
for(var i = 0;i<length-1;i++){
min=i;
for(var j = i;j<length;j++){
if(array[min]>array[j]){
min=j;
}
}
if(min!==i){
var temp=array[min];
array[min]=array[i];
array[i]=temp;
}
}
return array;
};
var insertSort=function (array) {
var length=array.length,
temp,j;
for(var i = 1;i<length;i++){
j=i;
temp = array[i];
while(j>0&&array[j-1]>temp){
array[j] =array[j-1];
j--;
}
array[j]=temp;
}
};
var mergeSort=function (array) {
var length = array.length;
if(length<=1){
return array;
}
var mid =Math.floor(array.length/2),
left=array.slice(0,mid);
right = array.slice(mid,length);
return merge(mergeSort(left),mergeSort(right));
};
var merge = function (left,right) {
var result = [],
il=0,ir=0;
while(il<left.length&&ir<right.length){
if(left[ir]<right[il]){
result.push(left[il++]);
}else{
result.push(right[ir++]);
}
}
while(il<left.length){
result.push(left[il++]);
}
while(ir<right.length){
result.push(right[ir++]);
}
return result;
};
var quickSort=function (array) {
quick(array,0,array.length-1);
};
function quick(array,left,right) {
var index;
if(array.length>1){
index = partition(array,left,right);
if(left<index-1){
quick(array,left,index-1);
}
if(index-1<right){
quick(array,index,right);
}
}
}
var partition=function (array,left,right) {
var pivot=array[Math.floor((left+right)/2)],
i = left,
j = right;
while(i<j){
while(array[i]<pivot){
i++;
}
while(array[j]>pivot){
j++;
}
if(i<=j){
swap(array,i,j);
i++;
j--;
}
}
return i;
};
function shellSort(){
var N=arr.length;
var h=1;
while(h<N/3){
h=3*h+1;
}
while(h>=1){
for(var i=h; i<N; i++){
for(j=i; j>=h && arr[j]<arr[j-h]; j-=h){
swap(arr, j, j-h);
}
}
h=(h-1)/3;
}
}
function swap(array, i, j){
var temp =array[j];
array[j]=array[i];
array[i]=temp;
}
function HeapAdjust(l, s, m) {
var temp = l[s];
for (var j = 2 * s + 1; j < m; j = 2 * j + 1)
{
if (j < m && l[j] < l[j + 1])
++j;
if (temp >= l[j])
break;
l[s] = l[j];
s = j;
}
l[s] = temp;
}
function HeapSort(l) {
for (var i = l.length / 2; i >= 0; i--)
HeapAdjust(l, i, l.length);
for (var i = l.length; i > 0; i--) {
swap(l, 0, i - 1);
HeapAdjust(l, 0, i - 2);
}
}
function swap(l, i, j) {
var temp = l[i];
l[i] = l[j];
l[j] = temp;
}
