Java实现一维数组排序(冒泡、选择、插入、Arrays类)

一、冒泡排序每次遍历中,对两个相邻的元素进行比较交换。

int temp;
for(int i=0;i<array.length-1;i++)
	for(int j=0;j<array.length-1-i;j++) 		
		if(array[j]<array[j+1]) {
			temp=array[j];
			array[j]=array[j+1];
			array[j+1]=temp;
		}


二、选择排序

每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

for(int i=0;i<array.length-1;i++) {
	int currentMin=array[i],currentMinIndex=i;
	for(int j=i+1;j<array.length;j++)
		if(currentMin>array[j]) {//找到值最小的元素及其下标
			currentMin=array[j];
			currentMinIndex=j;
		}
	if(currentMinIndex!=i) {//进行交换
		array[currentMinIndex]=array[i];
		array[i]=currentMin;
	}
}


三、插入排序

每步将一个待排序的元素,按其值的大小插入前面已经排序的序列,直到全部插入完为止。

for(int i=1;i<array.length;i++) {
	int currentElement=array[i],k;
	for(k=i-1;k>=0&&array[k]>currentElement;k--)
		array[k+1]=array[k];
	array[k+1]=currentElement;
}


四、Arrays类

对整个数组排序:

java.util.Arrays.sort(array);

对部分数组排序:

java.util.Arrays.sort(array,1,3);//从array[1]到array[3-1]的部分排序

 

这个类对于处理数组十分好用,还有其他的方法:

equals:检测连个数组是否相等

java.util.Arrays.equals(array1,array2);//相等返回true

 

fill:填充整个或部分数组

java.util.Arrays.fill(array, 5);//全部元素都为5
java.util.Arrays.fill(array,1,3,5);//array[1]到array[3-1]的元素全为5


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值