数组排序的两种方式

一个是先明确左边,一个是先明确右边;

一个是选择排序,一个是相邻排序;


选择排序:

1.先明确左边的值,(如果是从大到小排序,那就先明确最大值)

   //通过x来限制左边的值的位置

   for(x=0;x<arr.length-1;x++){

           //通过y值来限制右边的值的位置

           for(y=x+1;y<arr.length;y++){

                  //拿左边的值和右边的值对比

                 if(arr[x]<arr[y]){

                          //置换位置

                 }

           }

   }     


冒泡排序:    

2.先明确右边的值,(如果是从大到小排序,那就先明确最小值)

    //通过x来限制循环的次数

    for(x=0;x<arr.length-1;x++){

            //通过y来限制左边的值的位置

            for(y=0;y<arr.length-1-x;y++){

                    if(arr[y]<arr[y+1]){

                               //置换位置

                    }

            }

   }


总结:

选择排序,外循环条件限制内循环的初始值,使得每次循环左边值的起始位置都不同;

冒泡排序,外循环条件限制内循环的循环条件,使得每次循环次数都不同;


外循环条件减1是因为左边值的位置比右边小1;

冒泡排序,内循环条件减1,是因为右边的值的位置比左边的大1,为了避免角标越界,就加减1;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值