黑马程序员_各种排序方法

------------------------------android培训java培训期待与您交流! ----------------------------------------------------------------


需求: 对给定数组进行排序,{5,1,6,4,2,8,9}

冒泡排序:相邻两个元素进行比较,如果符合条件换位.

publicstaticvoid bubbleSort(int[] arr)

    {

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

       {

           for (int y = 0; y< arr.length - x - 1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。例如:length=5,y =3, y+1 =4.

           {

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

              {

 

                  int temp =arr[y];

                  arr[y]= arr[y + 1];

                  arr[y+ 1] = temp;

 

              }

           }

       }

    }

 

选择排序: 内循环结束一次,最值出现头角标位置上。

publicstaticvoid selectSort(int[] arr)

    {

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

       {

 

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

           {

              if (arr[x]> arr[y])

              {

                  int temp =arr[x];

                  arr[x]= arr[y];

                  arr[y]= temp;

 

              }

           }

 

       }

 

    }

发现无论什么排序。都需要对满足条件的元素进行位置置换。所以可以把这部分相同的代码提取出来,单独封装成一个函数。

publicstatic void swap(int[] arr,int a,int b)

       {

              int temp = arr[a];

              arr[a] = arr[b];

              arr[b] = temp;

       }


-----------------------------android培训java培训期待与您交流!----详细请查看:http://edu.csdn.net/heima---------------



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值