javaScript常用算法

经常会在CSDN上看一些文章,但还没有过发表文章,这是我分享的第一篇文章,想了下就分享JavaScript一些常用的算法,互相学习!!!

1.冒泡排序

冒泡排序,很多程序员一入门必定会接触到,原理:从小到大排序的情况下,从数组第一个数开始,跟第二个比较,大的数放在第二个,依次类推第二个跟第三个数进行比较一直到最后一个,得出数组的最后一个数为最大数,重复循环这个操作将数组从索引的最后一位由大到小排序下来。
function bubbleSort(array){
			for (var i = 0; i < array.length-1; i++) {
				for (var j = 0; j < array.length-i-1; j++) {
					if (array[j]>array[j+1]) {
						var temp = array[j+1];
						array[j+1] = array[j];
						array[j] = temp;
					}
				}
			}
			return array;
		}

2.选择排序

选择排序,从小到大排序的情况下,从数组第一个数开始,跟接下来的元素一个进行比较,当遇到小于第一个元素的时候,临时保存这个当前最小数的下标,用临时保存这个下标的数跟接下的数进行对比,重复此步骤获得最小值的下标,再跟第一个元素进行对换,从第二个到最后第二个元素重复上述操作。
	function selectSort(array){
		for (var i = 0; i < array.length-1; i++) {
			var min_index = i,temp;
			for (var j = i+1; j < array.length; j++) {
				if(array[j]<array[min_index]){
					min_index = j;
				}
			};
			temp = array[i];
			array[i] = array[min_index];
			array[min_index] = temp;
		};
		return array;
	};

3.插入排序

插入排序:从小到大排序的情况下,从第一个元素开始默认已这个元素已经排序,取第下个元素与其上的元素进行比较如果小于该元素则插入在该元素上一个位置,重复这个操作一直到最后一个数。
	function inserttionSort(array){
		for (var i = 1; i < array.length; i++) {
			var key = array[i];
			var j = i-1;
			while(j>=0&&array[j]>key){
				array[j+1] = array[j];
				j--;
			}
			array[j+1] = key;
		};
		return array;
	}


4.数组去重

数组去重,去重的方式很多,我就描述一下我平时经常用的,其原理:创建结果数组对象,同时创建一个循环去重的这个数组,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,为该属性赋值true。
function arrayRemoveRepeat(array){
		var new_array = [],obj = {};
		for (var i = 0; i < array.length; i++) {
			if (!obj[array[i]]) {
				new_array.push(array[i]);
				obj[array[i]] = true;
			};
		};
		return new_array;
	}


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值