/*
需求:将数组{15,4,2,-5,7,-6,-35,94,9}进行从小到大的顺序排序,并输出,要求运用函数
步骤:1先选出最大的数,将它与第一个数交换
2将交换后的数,除了第一个数,剩下的在选最大的数,跟第二个交换
3交换到最后,得到一列从大到小排列的数
*/
class Paixu
{
public static void main(String[] args)
{
int[] a =new int[]{15,4,2,-5,7,-6,-35,94,9};
//选择
paijiang(a);
printarr(a);
paisheng(a);
printarr(a);
//冒泡
maopaojiang(a);
printarr(a);
maopaosheng(a);
printarr(a);
}
//选择方式从大到小排序
public static void paijiang(int [] arr)
{
System.out.println("用选择方法进行降序排列: ");
for (int i=0;i<arr.length ;i++ )
{
for (int l=i;l<arr.length ;l++ )//选出剩下中最大的数
{ int num;
if (arr[i]<arr[l])
{
num=arr[l]; //交换
arr[l]=arr[i];
arr[i]=num;
}
}
}
}
//选择方式从小到大
public static void paisheng(int [] arr)
{
System.out.println("用选择方法进行升序排列: ");
for (int i=0;i<arr.length ;i++ )
{
for (int l=i;l<arr.length ;l++ )//选出剩下中最小的数
{ int num;
if (arr[i]>arr[l])
{
num=arr[l]; //交换
arr[l]=arr[i];
arr[i]=num;
}
}
}
}
//冒泡排序法升序
public static void maopaosheng(int[] arr)
{
System.out.println("用冒泡方法进行升序排列: ");
for (int i=0;i<arr.length ;i++ )
{
for (int j=0;j<arr.length-1-i ;j++ )
{
if (arr[j]>arr[j+1])
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
//冒泡排序法降序
public static void maopaojiang(int[] arr)
{
System.out.println("用冒泡方法进行降序排列: ");
for (int i=0;i<arr.length ;i++ )
{
for (int j=0;j<arr.length-1-i ;j++ )
{
if (arr[j]<arr[j+1])
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
//打印数组
public static void printarr(int [] b)
{
for (int i=0;i<b.length ;i++ )
{
if (i!=b.length-1)
System.out.print(b[i]+"\t");
else
System.out.print(b[i]+"\n");
}
}
}
|
|