冒泡排序、快速排序、数组去重

冒泡排序

冒泡排序就是每次比较相邻的两个数字,(从小到大排序)如果前边的数字比后边的数字大,那么交换,否则不交换;

var arr = [11,12,14,9,10,99,22,7];
Array.prototype.bubbleSort = function(){
	for(var i = 0; i < this.length; i++){
		//第一层循环:
		//总共要进行的轮数
		for(var j = 0; j < this.length - i -1; j++){
			//第二层循环:
			// 第一轮比较后最大的交换到末尾
			//第二轮比较后第二大的交换到末尾
			// ......
			if(this[j] > this[j+1]){
				var temp = this[j];
				this[j] = this[j+1];
				this[j+1] = temp;
			}
		}
	}
}
arr.bubbleSort();
console.log(arr);//[7, 9, 10, 11, 12, 14, 22, 99]

  

快速排序

(1)选择基准

(2)小于基准的数存在左边,大于的存在右边

(3)递归整个函数

function quickSort(arr){
	if(arr.length <= 1) return arr;
	//选择基准
	var index = Math.floor(arr.length / 2);
	var pivot = arr.splice(index,1);//截取的数组,原数组改变
	console.log(pivot);
	//判断,大于indexArr放右边,小于的放左边
	var left = [],right = [];
	for(var i = 0; i < arr.length; i++){
		if(arr[i] < pivot[0]){
			left.push(arr[i]);
		}else{
			right.push(arr[i]);
		}
	}
	//递归调用函数
	return quickSort(left).concat(pivot,quickSort(right));
}
var arr = [11,22,14,9,89,66];
console.log(quickSort(arr));

数组去重

数组去重主要是运用到了数组的indexOf方法

Array.prototype.delWeight = function(){
	var newArr = [];
	for(var i = 0; i < this.length; i++){
		if(newArr.indexOf(this[i]) == -1){
			newArr.push(this[i]);
		}
	}
	return newArr;
}

原文地址:https://www.cnblogs.com/ylp0617/p/8169490.html

时间: 2024-10-14 00:43:12

冒泡排序、快速排序、数组去重的相关文章

冒泡排序、数组去重

数组去重:第一种splice方法:function quchong() { for (var i = 0; i <= elements.length; i++) { for (var j = i + 1; j < elements.length; j++) { if (elements[j] == elements[i]) { elements.splice(j, 1); j -= 1; //这里应该把 j 减 1 } } } } var elements = [2, 2, 5, 3, 6,

冒泡排序,数组去重

冒泡排序(小到大): function sort(arr){ for(var i=0;i<arr.length;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; } } } return arr; } var arr=[3,4,2,1]; sort(arr); 数组去重:高效率 function duplicate(arr){ var

斐波那契数列,冒泡排序,选择排序,数组去重

斐波那契数列: 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以<斐波纳契数列季刊>为名的一份数学杂志,用于专门刊载这方面的研究成果. 这个数列从第二项开始,每一项都等于前两项之和. function abc(num){

js实现数组去重的三个方法、数组的快速排序

一:数组去重方法1 (思路:新建一个空的result数组,将需要去重的数组中的第一个元素传入,依次与剩余的元素进行对比,不重复则把元素传入到result数组中.) Array.prototype.removeDup = function(){ var result = [this[0]]; for(var i = 1 ; i<this.length; i++){ var repeat = false; for(var j = 0; j<result.length;j++){ if(this[i

7、数组去重和排序

一.数组去重 /** * 数组去重 * 1.双循环法-判断有无相等项 * 注意:第二个循环要从 i+1 开始 * */ let circleRepeat = function (ary) { for(let i=0;i<ary.length;i++){ let cur = ary[i]; for(let j=i+1;j<ary.length;j++){ if(cur === ary[j]){ ary.splice(j,1); j--; } } } return ary }; // consol

数组去重方法总结

这几天正在整理面试题,顺便把以前学的东西给总结一下,数组去重,我猜面试应该考的几率还是蛮高的,所以下面就让博主给讲讲iOS数组去重的几种方法. 第一种:冒泡排序,然后挨个挨个比较,这个没什么可说的,关键是麻烦,而且时间复杂度也挺大的,所以博主就不给讲了. 第二种:利用数组排序. NSArray *array = @[@"小玉",@"小小鱼",@"小玉"]; //数组去重方法---方法1 //建立一个新的的可变数组,数组长度为0 NSMutable

整理数组去重与数组排序等方法

实用且比较简单的数组排序与数组去重的方法,也较好理解: 1.数组冒泡排序: var arr=["a",3,5,2,1,4,2,3,3,3,5,5,5,4]; function sort(arr){ //让数组中的元素俩俩进行比较,实现替换: for (var i = 0; i< arr.length; i++) { for (var j = 0; j < arr.length; j++) { if (arr[j] > arr[j + 1]) { var temp =

面试题:数组去重

题目:数组去重,最常见的题型 五种算法来实现这个目的: Array.prototype.unique1 = function(){ var r = new Array(); label: for (var i = 0; i < this.length; i++) { for (var j = 0; j < r.length; j++) { if(r[j] == this[i]){ continue label; } }; r[r.length] = this[i]; }; return r;

javaScript数组去重方法

在JAvascript平时项目开发中经常会用到数组去重的操作.这时候就要用到JS数组去重的方法了. demo1: 第一种:JS数组去重操作方法是利用遍历原数组,利用数组的indexOf()方法来来判断新数组b中是否有原数组a中的元素,如果没有的话则在b数组的后面追加上a[i],如果有的话就不执行任何操作,最后可以达到数组去重的操作. 这种方法应该是平时开发中最常用的JS数组去重的方法了,简单又实用. demo2: 第二种去重的方法比较巧妙,是定义一个空对象和一个空数组,在遍历原数组的时候来用原数