javascript四大大排序:冒泡 选择 快速 插入
1、冒泡排序:
这个排序几乎全部程序员第一次了解的排序方式
- 原理:相邻两个数进行比较每一次循环确定一个最大或者最小值
- 代码:
for(int i =0;i < score.length - 1;i++)
{
for(int j = 0;j < score.length - 1-i;j++)// j开始等于0,
{
if(score[j] < score[j+1])
{ int temp = score[j];
score[j] = score[j+1];
score[j+1] = temp;
}
}
}
2、选择排序(例子从小到大)
-
原理:他是依次找到最小的放在前面
-
-
代码
1、for(var i=0;i<arr.length-1;i++)
{
for(var j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{ var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
2、 for(i=0;i<arr.length-1;i++){
minIndex=i;
for(j=i+1;j<arr.length;j++){
if(arr[j]<arr[minIndex]){
minIndex=j;
}
}
temp=arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
3、插入·排序
-
原理:它把数组分为两部分有序部分和无序部分
-
-
刚开始有序部分只有第一位 无序数组剩下的 无序的第一位要加入有序 就要进行排序相邻之间进行排序直到把加入的排序完成
-
代码:
for(var i=1;i<arr.length;i++)
{
for(var j=i-1;j>=0;j--)
{
if(arr[j+1]<arr[j])
{
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
alert(arr);
}
}
}
4、快速排序
- 原理:
- 快速排序;
1、先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。先从后向前找,再从前向后找。
后面找小的,前面找大的
- 代码:
var quickSort = function(arr) {
if (arr.length <= 1)
{
return arr;
}
var pivotIndex = Math.floor(arr.length / 2);
//Math.floor()的返回值为Number类型。返回小于或等于参数number的最大整数。
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++){
if (arr[i] < pivot) {
left.push(arr[i]);
}
else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
};
- 总结:这个快速排序涉及递归至少由上图应该很好了解快速排序到底是如何操作的left和right就是装两边的数组的对他们分别进行递归直到左右数组只剩一个或者没有就截至了
5、希尔排序
6、归并排序
7、桶排序
8、计数排序
9、基数排序
10、堆排序