您的位置:首页 > 编程语言 > Java开发

语言基础——Java_selectSort & bubbleSort

2016-03-30 13:05 585 查看
class Jsort
{
public static void main(String[] args)
{
int[] arr = new int[]{18,99,56,24,86,62,17};
sopsort(arr);
bsort(arr);
sopsort(arr);
ssort(arr);
sopsort(arr);
int max=getMax(arr);
System.out.println("max = "+max);
int min=getMin(arr);
System.out.println("min = "+min);
}
//打印数组实现
public static void sopsort(int[] arr)  //printsort
{
System.out.print("{");
for(int i=0;i<arr.length;i++)
{
if(i != arr.length-1)    //此处分开if,else两种情况是为了保证输出的数组元素间隔号用,和.更精准。
System.out.print(arr[i]+",");
else
System.out.print(arr[i]+".");
}
System.out.print("}");
System.out.println();
}
//数据交换实现
public static void swap(int[] arr,int a,int b)//swap  涉及元素交换时候可以利用swap,提高代码的复用性。
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
//冒泡排序实现
public static void bsort(int[] arr)//bsort 这是冒泡排序实现,下面有3处要说明。
{
for(int i=0;i<arr.length-1;i++)

{
for(int j=0;j<arr.length-1-i;j++) //此处arr.length-1的目的是避免数组越界异常;arr.length-1-i的目的是实现外循环+1时,内循环参与比较的元素个数-1.
{
if(arr[j]>arr[j+1])//注意:此处比较的是内循环的相邻的两个数。
swap(arr,j,j+1);
}
}
}
//选择排序实现
public static void ssort(int[] arr)//ssort
{
for(int i=0;i<arr.length-1;i++)  //1,arr.length-1中的"-1"是因为最后一个元素没有比较对象了,即最后一个不用比较。
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[j]>arr[i]) //比较的不一样得到的排序结果正好相反。区别arr[j]>arr[i]  和arr[i]>arr[j],可以体会下。
swap(arr,i,j);//此处swap方法中i,j先后顺序随意。自己理解下。
}
}
}
//获取最大值实现
public static int getMax(int[] arr)//getMax
{
int maxEle=arr[0];
for(int i=0;i<arr.length;i++)
{
if(arr[i]>arr[0])
maxEle=arr[i];
else
maxEle=arr[0];
}
return maxEle;
}
//获取最小值实现
public static int getMin(int[] arr)//getMin
{
int minEle=arr[0];
for(int i=0;i<arr.length;i++)
{
if(arr[0]>arr[i])
minEle=arr[i];
else
minEle=arr[0];
}
return minEle;
}
}
锤炼·精技术_JeremyDc
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 语言