简单的选择排序

选择排序有两种,我就说一种,首先先定一个数组,接着for循环,然后再对比,接着定义一个数,实现转换,小的往前走大的后移,再遍历,最后输出

class Wuqu
{
    public static void main(String[] args)
    {
      int a[]={-5,1,3,6,1,0,9,-2};
      for(int i=0;i<7;i++)
      {
        for(int j=1+i;j<8;j++)
      {
        if(a[i]<a[j])
      {
             int t=a[j];
             a[j]=a[i];
             a[i]=t;
      }
      }
      }
        for(int i=0;i<8;i++)
      {
        System.out.println(a[i]);
      }
      }
}

还有一种不理解,就是陈梦芳同学那种

/*
中心思想:在未排序的序列中选择出最小值的下标,并用最小值下标的元素与未排序序列的首元素进行交换


55 45 86 17 23
17 
23 
45 
55 
86






arr
55 45 86 17 23
0   1    2   3   4


55 45 86 17 23    0 ----55 45 86 17 23     
0 1 2  3   4 minIndex = 0    arr[minIndex]与arr[1] 比较        minIndex = 1
minIndex = 1    arr[minIndex]与arr[2] 比较        minIndex = 1
minIndex = 1    arr[minIndex]与arr[3] 比较        minIndex = 3
minIndex = 3    arr[minIndex]与arr[4] 比较        minIndex = 3   arr[minIndex]与arr[0] 交换
17 45 86 55 23    1 ----45 86 55 23        
0   1   2   3   4 minIndex = 1    arr[minIndex]与arr[2] 比较        minIndex = 1
minIndex = 1    arr[minIndex]与arr[3] 比较        minIndex = 1
minIndex = 1    arr[minIndex]与arr[4] 比较        minIndex = 4   arr[minIndex]与arr[1] 交换
17 23 86 55 45    2 ----86 55 45
0   1   2   3   4 minIndex = 2    arr[minIndex]与arr[3] 比较        minIndex = 3
minIndex = 3    arr[minIndex]与arr[4] 比较        minIndex = 4   arr[minIndex]与arr[2] 交换
17 23 45 55 86    3 ----55 86                 
0   1   2   3   4 minIndex = 3    arr[minIndex]与arr[4] 比较        minIndex = 3   arr[minIndex]与arr[3] 交换

17 23 45 55 86
*/
public class Demo{
public static void main(String[] args)
{
int[] arr = {55 ,45, 86, 17, 23};

for(int i = 0;i < arr.length - 1;i++)
{
int minIndex = i;

for(int j = i +1; j < arr.length;j++)
{
if(arr[minIndex] > arr[j])
{
minIndex = j;
}
}
if(minIndex != i)
{
int temp;
temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}

}


for(int i  = 0;i< arr.length;i++)
{
System.out.println(arr[i]);
}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值