数组的排序及去重

数组的排序及去重

数组去重

方法一:
双层循环,外层循环元素,内层循环时比较值
值相同时,则删去这个值
注意点 : 删除元素之后,需要将数组的长度也减1.

	function abandon(random){
		for(var i = 0;i<random.length;i++){
			for (var j = i+1;j<random.length;j++) {
				if (random[i]==random[j]) {
				 //如果第一个等于第二个,splice方法删除第二个
					random.splice(j,1);
					--j;
				}
			}
		}
		return random;
	}
	var a=[1,4,6,2,6,8,9,3,9,1,4,6,7,8,0,2];
	var random_new=abandon(a);
	console.log(random_new);

方法二:

  1. 创建一个新的数组存放结果
  2. 创建一个空数组
  3. for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到新数组中
    说明:至于如何对比,就是每次从原数组中取出一个元素,然后到对象中去访问这个属性,如果能访问到值,则说明重复。
	function newArr(array){ 
    	//一个新的数组 
    	var arrs = []; 
    	//遍历当前数组 
    	for(var i = 0; i < array.length; i++){ 
        //如果临时数组里没有当前数组的当前值,则把当前值push到新数组里面 
        	if (arrs.indexOf(array[i]) == -1){ 
           		arrs.push(array[i])
        	}; 
    	} 
    	return arrs; 
	}
	var arr = [1,1,2,5,5,6,8,9,8];
	console.log(newArr(arr))
数组排序

交换两个变量的值
需要第三个变量来帮忙

	var one = 20;
	var two = 40;
	var three = two;
	two = one;
	one = three;
	console.log(one,two);
	function compare(arr){
		for (var i=0;i<arr.length-1;i++) {
			for (var j=i+1;j<arr.length;j++) {
				if (arr[i]<arr[j]) {
					var mp=arr[i];
					arr[i]=arr[j];
					arr[j]=mp;
				}
			}
		}
		return arr;
	}
	var a=[1,5,7,3,9,0,4,7,9,3,5,2];
	console.log(compare(a));
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数组排序去重是C语言中常见的操作,可以用来对数组进行排序并去除重复元素。 数组排序可以使用多种排序算法来实现,如冒泡排序、插入排序、选择排序等。以下以冒泡排序为例进行说明。 冒泡排序的基本思想是依次比较相邻的两个元素,如果顺序不对则进行交换,直到整个数组有序为止。具体步骤如下: 1. 初始时,设置一个标志位flag为1,用来标识本趟排序是否进行了交换。 2. 从数组的第一个元素开始,依次比较相邻的两个元素,如果顺序不对则进行交换,并将flag置为0。 3. 继续对数组的下一个元素进行比较,直到最后一个元素。 4. 如果flag为1,则表示本趟排序未进行交换,即数组已经有序,排序结束;否则,继续进行下一趟排序,重复步骤2-4。 去重操作则是将数组中重复的元素只保留一个,可以通过双重循环遍历数组,比较相邻的元素是否相等,若相等则进行标记,最后将标记为1的元素保留,其他重复元素去除。 综合而言,实现数组排序去重可以按照以下步骤进行: 1. 使用冒泡排序或其他排序算法对数组进行排序。 2. 使用双重循环遍历数组,比较相邻的元素是否相等。 3. 若相等,则进行标记,最后将标记为1的元素保留,其他重复元素去除。 通过以上步骤,可以实现对数组排序去重操作,并得到一个有序且去重数组。在C语言中,通过使用循环和条件判断等基本语法,可以简便地实现这些操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值