冒泡排序与选择排序

冒泡排序与选择排序

	冒泡排序规则:两两比较,大的放后面
	例如:
		var = [25,3,78,2,9];       //共有五位  0-4
		// 排序比较  
	//	0 - 1  1-2  2-3  3-4    length-1-0
	//	0 - 1  1-2  2-3			 length-1-1
	//	0 - 1  1-2					 length-1-2
	//	0 - 1 						 length-1-3
	//  这里就可以看出是一个for循环嵌套
	// for循环的规则 :外部循环控制行  内部循环控制列
	for(var i = 0;i<arr.length-1;i++){       //大循环,用于遍历数组每个元素
            for(var j=0;j<arr.length-1-i;j++){    // 小循环,用于将数组中的某个元素与其它所有元素相比较 j的返范围是跟随 i的变化而变化的
                var sum;            // 先找一个空数组用来交换
                if(arr[j]>arr[j+1]){   //  比较大小
                    sum = arr[j+1];  //交换改变位置
                    arr[j+1]=arr[j];
                    arr[j]=sum;
                }
            }
        }
        console.log(arr);
选择排序:取第一位和后面的所有做比较,拿到最小的放在第一位
//规律根据上面
	for(var i=0;i<arr.length-1;i++){  //大循环,需要比对的次数
            var ls = arr[i];					//假定一个最小值
            var lsindex = i;					//假定最小值的索引
            for(var j =i+1;j<arr.length;j++){		//小循环,每次需要比对的次数
                if(ls>arr[j]){		//交换给临时数组和索引
                    ls = arr[j];
                    lsindex = j;
                }
            }
            arr[lsindex]= arr[i];	//再次交换
            arr[i]=ls;
        }
        console.log(arr);

选择排序交换可以直接进行交换 只要理清思路找到循环规律和交换就可以了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值