黑马程序员技术交流社区
标题:
数组的两种排序方式
[打印本页]
作者:
914360849
时间:
2015-5-23 23:25
标题:
数组的两种排序方式
import java.util.*;
//数组的排序
class ArrayDemo2
{
public static void main(String[] args)
{
//定义数组
int[] arr={12,-6,59,2,0,-21,-3,4,8,9};
//打印原数组
printArray(arr);
Arrays.sort(arr);
printArray(arr);
//选择排序从小到大排序
xuanZePaiXu( arr);
printArray(arr);
//冒泡排序
maoPaoPaiXu(arr);
printArray(arr);
}
//选择排序
public static void xuanZePaiXu(int[] arr)
{
System.out.println("选择排序结果:");
for(int x=0;x<arr.length-1;x++)
{
for(int y=x+1;y<arr.length;y++)
{
if(arr[x]>arr[y])
{//换位操作
arr[x]=arr[x]+arr[y];
arr[y]=arr[x]-arr[y];
arr[x]=arr[x]-arr[y];
}
}
}
}
//冒泡排序
public static void maoPaoPaiXu(int []arr)
{
System.out.println("冒泡排序结果:");
for(int a=0;a<arr.length-1;a++)
{
for(int b=0;b<arr.length-a-1;b++)//-1,目的避免角标越界。-a,每次比较的元素在减少。
{
if(arr[b]<arr[b+1])
//换位操作
{
arr[b] =arr[b]+arr[b+1];
arr[b+1]=arr[b]-arr[b+1];
arr[b] =arr[b]-arr[b+1];
}
}
}
}
//打印数组
public static void printArray(int [] arr)
{
System.out.print("[");
for(int y=0;y<arr.length;y++)
{
if(y==arr.length-1)
System.out.print(arr[y]);
else
System.out.print(arr[y]+",");
}
System.out.println("]");
}
}
作者:
Amu
时间:
2015-5-23 23:48
写的不错哇,一个小建议,数组元素换位操作可单独写一个方法swap,提高代码复用性
作者:
白水丶
时间:
2015-5-23 23:52
我来赚技术分
作者:
二大爷
时间:
2015-5-24 00:00
有点水啊
作者:
914360849
时间:
2015-5-24 00:34
欢迎多提意见
作者:
qian0217wei
时间:
2015-5-24 00:43
写算法是最好加上思想,另外你这水贴也太明显了!如果有什么疑问或者心得体会可以分享,你这完全就是看了视频贴个代码啊!
作者:
张凝宁
时间:
2015-5-24 03:09
欢迎多提意见
作者:
冷雨敲窗被未温
时间:
2015-5-24 08:58
用手把嘴遮住干嘛?水了大家忍不住笑吗?还是欲抱琵琶半遮面?
作者:
q617939894
时间:
2015-5-24 11:46
不错不错 继续加油
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2