1、快速排序。
var arr=[2,4,6,88,78,67,65,9,12];
function quicklySort(list){
if(list.length < 1 ){ //如果list.length小于1的话。
return list; //那么就返回原来的数组中,重新循环。
}
var centerIndex = Math.floor(list.length / 2); //数组的中间数下标
var centerNum = list.splice(n,1)[0]; //数组的中间数
var left = [],right = []; //创建两个空数组用于装参数。
for(var i=0;i<list.length;i++){
if(list[i] < num){ //当数组里面的数值小于中间数
left.push(list[i]) //推入到左边的空数组中。
}else{
right.push(list[i]) //大于中间数的数,推入到右边的数组中。
}
}
return quicklySort(left).concat([num],quicklySort(right)) //返回值 左边的数组和中间的数值还有右边的数组。
}
console.log(quicklySort(arr)) //打印重新排序的数组。
2、判断质数:自然数大于1且只能被一和他本身整除的数字.
function zhiNum(n1,n2){
var arr=[];
for(var i=0;i<n2;i++){
if(isSure(i)){
arr.push(i)
}
}
return arr
}
function isSure(n){//传进来的每一个数从2开始向后取余 ==0时表示能被整除 不等于0不能被整除此时这个数是质数
for(var j=2;j<n;j++){
if(n % j == 0){
return false
}
}
return true
}
console.log(zhiNum(1,100)).
3、冒泡排序。
var brr = [1, 344, 55, 34, 23, 2, 67, 82] //创建一个数组
function maoPao(arr) {
var l = arr.length; // 设置一个长度;
for (var i = 0; i < l - 1; i++) { // 变量i为坐标,获取数组中数值,所以是l-1为坐标的长度;
for (var j = 0; j < l - 1 - i; j++) { // 变量J为
if (arr[j] > arr[j + 1]) {
var num = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = num
}
}
}
return arr
}
console.log(pao(brr))
网友评论