java8 枚举 排序_数组,排序,枚举

packagecom.array.demo;importjava.util.Arrays;/*** 数组的排序*/

public classTestArraySort {public static voidmain(String[] args) {//定义待排序的数组

int[] numbers = {4,6,3,7,5,2,1};//求和

sum(numbers);//求平均数

avg(numbers);//最大数

max(numbers);//排序(冒泡,选择,插入)//希尔,二分法排序,归并排序//bubboSort(numbers);//选择排序//selectedSort(numbers);//插入排序

insertSort(numbers);

}private static void insertSort(int[] numbers) {//插入排序(将数列分为有序和无序两部分,//每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较, 找出插入位置,将该元素插入有序系列中)

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

numbers[j]= numbers[j-1];

numbers[j- 1] =temp;

}

}

}for (intel : numbers) {

System.out.print(el+" ");

}

System.out.println("\n\r");

}/*** 选择排序(每次从待排序的数据源元素中选出最小/最大一个元素顺序放到排好序的最后)

*@paramnumbers*/

private static void selectedSort(int[] numbers) {//定义存储最小值

int minVal = 0;//存储最小值下标

int minIndex = 0;for (int i =0 ; i < numbers.length; i++) {//假设第一个元素就是最小值

minVal =numbers[i];//记录最小值得下标

minIndex =i;for (int j = i + 1; j < numbers.length; j++) {if (numbers[j]

minVal =numbers[j];//存储最小值得下标

minIndex =j;

}

}if (minVal != numbers[i] && minIndex !=i) {

numbers[minIndex]=numbers[i];

numbers[i]=minVal;

}

}for (intel : numbers) {

System.out.print(el+" ");

}

System.out.println("\n\r");

}/*** 冒泡排序

*@paramnumbers*/

private static void bubboSort(int[] numbers) {for (int i = 0; i < numbers.length; i++) {for (int j = 0; j < numbers.length - i - 1; j++) {if (numbers[j] > numbers[j + 1]) {//交换2个元素

int temp =numbers[j];

numbers[j]= numbers[j + 1];

numbers[j+ 1] =temp;

}

}

System.out.println(Arrays.toString(numbers));

}for (intel : numbers) {

System.out.print(el+" ");

}

System.out.println("\n\r");

}private static void max(int[] numbers) {//假设第一个元素为最大值

int max = numbers[0];if(isNotEmpty(numbers)) {for (int i = 1; i < numbers.length; i++) {if (max

max=numbers[i];

}

}

}

System.out.println("最大值为:"+max);

}private static void avg(int[] numbers) {//定义存储总和遍历

int sum = 0;if(isNotEmpty(numbers)) {for (intnumber : numbers) {

sum+=number;

}

}

System.out.println("所有元素平均值为:"+sum/numbers.length);

}/*** 求数组中所有元素的和

*@paramnumbers*/

private static void sum(int[] numbers) {//定义存储总和遍历

int sum = 0;if(isNotEmpty(numbers)) {for (intnumber : numbers) {

sum+=number;

}

}

System.out.println("元素之和为:"+sum);

}//判断数组是否为空方法

private static boolean isNotEmpty(int[] array) {return array != null && array.length > 0;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值