冒泡排序:
function
bubbleSort(
arr) {
var
len =
arr.
length,
termp;
for (
var
i =
len -
1;
i >
0;
i--) {
for (
var
j =
0;
j <
i;
j++) {
if (
arr[
j] >
arr[
j +
1]) {
var
temp =
arr[
j];
arr[
j] =
arr[
j+
1];
arr[
j+
1] =
temp;
}
}
}
return
arr;
}
var
arrTest = [
1,
43,
54,
21,
64,
321,
545,
3,
54,
545];
var
result =
bubbleSort(
arrTest);
console.
log(
result);
------------------------------------------------------------------------------
快速排序:
function
quickSort(
arr){
var
len=
arr.
length;
var
pivotIndex=
Math.
floor(
len/
2);
var
pivot=
arr[
pivotIndex];
var
left=[];
var
right=[];
if(
len<=
1){
return
arr}
for(
var
i=
0;
i<
len;
i++){
if(
arr[
i]<
arr[
pivotIndex]){
left.
push(
arr[
i]);
}
else
if(
arr[
i]>
arr[
pivotIndex]){
right.
push(
arr[
i]);
}
}
return
left.
concat(
pivot,
right);
}
var
arrTest = [
1,
43,
54,
21,
64,
321,
545,
3,
54,
545];
var
result =
quickSort(
arrTest);
console.
log(
result);
----------------------------------------------------------------------------------
插入排序:
function
insertSort(
arr){
var
len=
arr.
length;
for(
var
i=
1;
i<
len;
i++){
var
temp=
arr[
i];
for(
var
j=
i;
j>
0;
j--){
if(
arr[
j-
1]>
temp){
arr[
j]=
arr[
j-
1];
}
else{
arr[
j]=
temp;
break;
}
}
}
return
arr;
}
var
arrTest = [
1,
43,
54,
21,
64,
321,
3,
54,
545];
var
result =
insertSort(
arrTest);
console.
log(
result);
--------------------------------------------------------------------
选择排序:
function
selectSort(
array) {
var
length =
array.
length,
i,
j,
minIndex,
minValue,
temp;
for (
i =
0;
i <
length -
1;
i++) {
minIndex =
i;
minValue =
array[
minIndex];
for (
j =
i +
1;
j <
length;
j++) {
//通过循环选出最小的
if (
array[
j] <
minValue) {
minIndex =
j;
minValue =
array[
minIndex];
}
}
// 交换位置
temp =
array[
i];
array[
i] =
minValue;
array[
minIndex] =
temp;
}
return
array
}
var
arrTest = [
1,
43,
54,
21,
64,
321,
3,
54,
545];
var
result =
selectSort(
arrTest);
console.
log(
result);
----------------------------------------------------------------------
归并排序:
function
merge(
left,
right) {
var
tmp = [];
while (
left.
length &&
right.
length) {
if (
left[
0] <
right[
0])
tmp.
push(
left.
shift());
else
tmp.
push(
right.
shift());
}
return
tmp.
concat(
left,
right);
}
function
mergeSort(
a) {
if (
a.
length ===
1)
return
a;
var
mid = ~~(
a.
length /
2)
,
left =
a.
slice(
0,
mid)
,
right =
a.
slice(
mid);
return
merge(
mergeSort(
left),
mergeSort(
right));
}