黑马程序员-数组排序

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! --


import java.util.Arrays;


/*
 * 给定一个数组{5,6,9,2,4,10}
 * 获取数组中最大值,以及最小值
 */
public class ArrayTest {


public static void main(String[] args)
{
int[] arr= {5,6,9,2,4,10};
System.out.println("数组中的最大值:"+ArrayMax(arr));
System.out.println("数组中的最小值:"+ArrayMin(arr));

//选择排序
selectSort();//从小到大排序
selectSortM();//从大到小排序

bobSort();//冒泡排序,从小到大
bobSort1(); //冒泡排序:从da到xiao

Arrays.sort(arr);//系统内置函数排序,开发中、使用该句代码
printArray(arr);//打印数组

}
//获取数组中的最大值
public static int ArrayMax(int arr[])
{
for(int x=1;x<arr.length;x++)
{
arr[0]=arr[0]>arr[x]?arr[0]:arr[x];
}
return arr[0];
}

//获取数组中的最小值
public static int ArrayMin(int arr[])
{
for(int x=1;x<arr.length;x++)
{
arr[0]=arr[0]<arr[x]?arr[0]:arr[x];
}
return arr[0];
}

/排序
//选择排序
//内循环结束一次,最值出现在头角标位置上。
//对给定数组进行排序{5,1,4,7,9,3,2},从小到大
public static void selectSort()
{

int[] arr = {5,1,4,7,9,3,2};
for(int i=0;i<arr.length;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
/*int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
*/
swap(arr,i,j);
}
}
}

System.out.println("从小到大排序");
printArray(arr);
}

//对给定数组进行排序{5,1,4,7,9,3,2},从大到小
public static void selectSortM()
{

int[] arr = {5,1,4,7,9,3,2};
for(int i=0;i<arr.length;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]<arr[j])
{
/*int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
*/
swap(arr,i,j);
}
}
}
System.out.println("从大到小排序");
printArray(arr);
}




/*
*冒泡排序:相邻的两个元素进行比较,如果符合条件就换位
*特点:每圈排序后,最大元素在最边上
*/
public static void bobSort() //冒泡排序:从小到大


{
int[] arr = {5,1,4,7,9,3,2};
for(int i=0;i<arr.length-1;i++)
{
for(int j=0;j<arr.length-i-1;j++)
{
if(arr[j]>arr[j+1])
{
/*int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
*/
swap(arr,j,j+1);
}
}


}
System.out.println("冒泡排序");
printArray(arr);
}



public static void bobSort1() //冒泡排序:从da到xiao


{
int[] arr = {5,1,4,7,9,3,2};
for(int i=0;i<arr.length-1;i++)
{
for(int j=0;j<arr.length-1;j++)
{
if(arr[j]<arr[j+1])
{
/*int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
*/
swap(arr,j,j+1);
}
}

}

System.out.println("冒泡排序:从大到小");
printArray(arr);

}

//打印数组
public static void printArray(int[]  a)
{
for(int i=0;i<a.length;i++)
{
System.out.println(a[i]);
}
}

//发现无论什么排序,都需要对满足条件的元素进行位置置换,所以可以将这部分代码封装成一个函数
public static void swap(int[] arr,int a,int b) //数组元素交换
{
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
}


------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值