选择排序:selectSort

特点:内循环结束一次,最值出现在头角标上。

int[] a={2,3,1,4}
角标:0 1 2 3
元素:2 3 1 4

角标为0的和角标为1、2、3的分别比较,
角标为0的数(2)<角标为1的数(3)--》不换位置
角标为0的数(2)>角标为2的数(1)--》角标为0的数(1),角标为2的数(2)
角标为0的数(1)<角标被3的数(4)--》不换位置
第一轮结果:1 3 2 4
角标为0的数(1)不参与第二轮比较
角标为1的数(3)>角标为2的数(2)--》角标为1的数(2),角标为2的数(3)
依次类推:
第二轮结果:1,2 3 4

第三轮结果:1 2,3 4


/*
需求1:对给定数组进行排序:从小到大排序
{5,1,6,4,2,8,9}
*/
class ArrayTest_xuanzhepaixu //类名接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
{
    public static void main(String[] args)
    {
        int[] arr={3,1,6,8};
        //排序前打印,都需要遍历
        printArray(arr);//调用printArray(int[] arr)函数

        //排序
        xzpx(arr);//调用xzpx(int[] arr)函数

        //排序后打印,都需要遍历
        printArray(arr);
        
    }
//定义一个功能,选择排序
    public static void xzpx(int[] arr)//定义一个功能,选择排序,图形数组void,selectSort//变量名和函数名:xxxYyyZzz
    {
        //int temp=0;//定义一个临时存放角标的变量,初始化值为0;
        for (int x=0;x<arr.length-1 ;x++ )//最后一个数不需要遍历-1
        {
            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;
                }
            }
            
        }
    }
//定义一个功能,打印数组
    public static void printArray(int[] arr)
    {
        System.out.print("[");
        for (int x=0;x<arr.length ;x++ )
        {
            if(x!=arr.length-1)
                System.out.print(arr[x]+",");
            else
                System.out.println(arr[x]+"]");
        }
    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值