冒泡排序
//--------------------------
for(var i=0,len=arr.length;i<len;i++){
for(var j=i+1;j<len;j++){
if(arr[i]>arr[j]){ //将最大的放在最后
var temp=0;
t=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
//--------第二种(改善)------------
for(var i=1,len=arr.length;i<len;i++){
for(var j=0;j<len-i;j++){ //已经排序好的最大数组不必在比较
if(arr[j]>arr[j+1]){
var temp=0;
t=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
选择排序
//--------------------------
for(var i=0,len=arr.length-1;i<len;i++){
int min = i;
for(var j=i+1;j<len;j++){
if(arr[min]>arr[j]){
min=j;
}
}
if(min!=i){
var temp=0;
t=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
直接插入排序
for (int i = 1; i < arr.Length; i++){
if (arr[i - 1] > arr[i])
{
int temp = arr[i]; //每次取出当前的要比较的值
int j = i;
while (j > 0 && arr[j - 1] > temp) //大于它的话,要赋值给它
{
arr[j] = arr[j - 1];
j--;
}
arr[j] = temp;
}
}
js实现快速排序
//-----------------first---------------
var quickSort = function(arr){
var arr = arr.concat(); //concat的新用法(深复制)
if(arr.length<=1) return arr;
var index = Math.floor(arr.length/2);
var centerValue = arr.splice(index,1);
//console.log(centerValue);
var left = [];
var right = [];
for(var i=0,len=arr.length;i<len;i++){
if(centerValue>=arr[i]){
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
// debugger
//console.log(quickSort(left));
//console.log(right);
var res1 = arguments.callee(left);
var res2 = arguments.callee(right);
//return left.concat(right);
return res1.concat(centerValue,res2);
}
var arr=[9,8,7,4,5,3,77];
var result = quickSort(arr);
console.log(result);
console.log(arr);
//-----------------second---------------
var quickSort = function(arr){
if(arr.length<=1) return arr;
var index = Math.floor(arr.length/2);
console.log(index); //1
var centerValue = arr.slice(index,index+1)[0];
console.log(centerValue); //5
var left = [];
var right = [];
for(var i=0,len=arr.length;i<len;i++){
if(centerValue>=arr[i]){
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
var res1 = arguments.callee(left);
var res2 = arguments.callee(right);
return res1.concat(res2);
}
var arr=[9,8,7,4,5,3,4,77];
//var result = quickSort(arr);
//console.log(result);
console.log(arr);
var aa=[3,4];
//console.log(aa.slice(1,2));
console.log(aa.splice(0,0));
反转排序
for(var i=0,len=arr.length-1;i<len/2;i++){
var temp=0;
t=arr[i];
arr[i]=arr[len-1-i];
arr[len-1-i]=temp;
}
参数排序
function mySort() {
var tags = new Array();//使用数组作为参数存储容器
tags = Array.prototype.slice.call(arguments);
tags.sort(function(a,b){
return a-b;
});
return tags;//返回已经排序的数组
}
var result = mySort(50,11,16,32,24,99,57,100); //传入参数个数不确定
console.info(result); //显示结果
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。