java-选择排序

选择法排序的思路: 假设有N个数字进行比较排序。

1.把第1位和后面的所有数据进行比较,如果比第1位小的,就与第1位交换位置。(比较次数为:N-1)。

2.把第2位和后面的所有数据进行比较,如果比第2位小的,就与第2位交换位置。(比较次数为:N-2)。

3.把第3位和后面的所有数据进行比较,如果比第3位小的,就与第3位交换位置。(比较次数为:N-3)。

······    ······

N-1.把第N-1位和第N位数据进行比较,如果比第N-1位小的,就与第N-1位交换位置。(比较次数为:N-(N-1))。

则通过上述分析:选择排序需要两层循环,第一层循环为N-1次,第二层循环为N-(N-1)次。

java核心代码如下:

int[] a = { 18, 62, 68, 82, 65, 9, 19, 18 };    //声明一个int类型的数组,并进行赋值
int tempa;    //声明一个int类型的变量
for (int j = 0; j < a.length - 1; j++) {    //第一层循环:循环起始:j=0,循环结束:j=(a.length-1)-1,共循环a.length-1-0次
	for (int i = j + 1; i < a.length ; i++) {    //第二层循环:循环起始:i=j+1,循环结束:i=a.length-1,共循环a.length-(j+1)次
		if (a[j] > a[i]) {    //如果当前循环变量大于后面的循环变量,那么将它们互换位置
		    tempa = a[j];
		    a[j] = a[i];
		    a[i] = tempa;
		}
	}
}
for (int i = 0; i < a.length; i++) {    //循环打印a数组
	System.out.println(a[i]);
}

输出结果为:

9
18
18
19
62
65
68
82



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值