Java 数组练习题(2)

时间:2023-02-23 12:18:03

1、输入10个整数存入数组,求最大值和最小值

package com.hz.array02;

import java.util.Scanner;

/**
* 1、输入10个整数存入数组,求最大值和最小值
* @author ztw
*
*/
public class Practice01 {

public static void main(String[] args) {
int[] arr = new int[10];
Scanner sc = new Scanner(System.in);
//循环输入10个整数存入数组
for(int i=0;i<arr.length;i++){
System.out.println("输入"+(i+1)+"个整数:");
arr[i]=sc.nextInt();
}
int max=arr[0],min=arr[0];//初始arr[0]为最大值,和最小值
//遍历比较大小
for(int j=0;j<arr.length;j++){
if(max<arr[j]){
max=arr[j];
}
if(min>arr[j]){
min=arr[j];
}
}
System.out.println("最大值:"+max+" 最小值:"+min);
}
}

4、输入10个整数存入数组,然后采冒泡排序后将其输出

package com.hz.array02;

import java.util.Scanner;

/**
* 4、输入10个整数存入数组,然后采冒泡排序后将其输出
* @author ztw
*
*/
public class Practice04 {

public static void main(String[] args) {
int[] arr = new int[10];
Scanner sc = new Scanner(System.in);
//循环输入10个整数存入数组
for(int i=0;i<arr.length;i++){
System.out.println("输入"+(i+1)+"个整数:");
arr[i]=sc.nextInt();
}
//定义外循环
for(int j=0;j<arr.length;j++){
//定义内循环
for(int k=0;k<arr.length-j-1;k++){
if(arr[k]>arr[k+1]){//比较相邻的元素
/*
*用于交换两个元素
*/
int temp = arr[k];
arr[k] = arr[k+1];
arr[k+1] = temp;
}
}
}
System.out.println("冒泡排序后:");
//循环遍历数组
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.print("\n");
}
}

5、已知数组 int[] a={1,2,3,5,6,7,8,9,0},int ren=4;将ren插入a中,但a必须有序

package com.hz.array02;

/**
* 5、已知数组
* int[] a={1,2,3,5,6,7,8,9,0},int ren=4;
* 将ren插入a中,但a必须有序
* @author ztw
*
*/
public class Practice05 {

public static void main(String[] args) {
int ren=4;
int[] a={1,2,3,5,6,7,8,9,0,ren};
insertSort(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
//插入排序算法
public static int[] insertSort(int[] a){
for(int i=1;i<a.length;i++){
for(int j=i;j>0;j--){
if(a[j]<a[j-1]){
int temp=a[j-1];
a[j-1] = a[j];
a[j] = temp;
}else break;

}
}
return a;

}
}

6、已知数组 int[] a={10,20,30,40,50,60};使用交换反序使数组变成a={60,50,40,30,20,10}

package com.hz.array02;

import java.util.Arrays;

/**
* 6、已知数组
* int[] a={10,20,30,40,50,60};
* 使用交换反序使数组变成a={60,50,40,30,20,10}
* @author ztw
*
*/
public class Practice06 {

public static void main(String[] args) {
shengxu();
System.out.print("\n");
jiangxu();
}
//升序
public static void shengxu(){

int[] a={60,50,40,30,20,10};
//利用Arrays带有的排序方法快速排序
Arrays.sort(a);//进行排序
for(int i:a){
System.out.print(i+" ");
}

}
//降序
public static void jiangxu(){
int[] a={10,20,30,40,50,60};
//利用Arrays带有的排序方法快速排序
Arrays.sort(a);//进行排序
for(int i=a.length-1;i>=0;i--){
System.out.print(a[i]+" ");
}
}
}

11、定义一个长度为10的整型数组,循环输入10个整数。然后判断这个数组中有几个偶数,再定义一个正好能存放这几个偶数的数组,将上一个数组中的所有偶数复制过来。最后循环输出这些偶数。

 package com.hz.array02;

import java.util.Arrays;
import java.util.Scanner;

/**
* 11、定义一个长度为10的整型数组,循环输入10个整数。
* 然后判断这个数组中有几个偶数,再定义一个正好能存放这几个偶数的数组,
* 将上一个数组中的所有偶数复制过来。最后循环输出这些偶数。
* @author ztw
*
*/
public class Practice11 {

public static void main(String[] args) {
int[] arr = new int[10];
int[] arr2 = new int[10];
Scanner sc = new Scanner(System.in);
//循环输入10个整数存入数组
for(int i=0;i<arr.length;i++){
System.out.println("输入"+(i+1)+"个整数:");
arr[i]=sc.nextInt();
//判断输入的数是否为偶数
if(arr[i]%2==0){
arr2[i]=arr[i];
}

}
//升序排序遍历数组arr2
Arrays.sort(arr2);
for(int i:arr2){
if(i!=0){
System.out.print(i+" ");
}
}
//遍历数组arr2
// for(int k=0;k<arr2.length;k++){
// System.out.print(arr2[k]+" ");
// }
}
}

12、输入一个数组,使用选择排序输出

package com.hz.array02;

import java.util.Scanner;

/**
* 12、输入一个数组,使用选择排序输出
* @author ztw
*
*/
public class Practice12 {

public static void main(String[] args) {
int[] arr = new int[10];
Scanner sc = new Scanner(System.in);
//循环输入10个整数存入数组
for(int i=0;i<arr.length;i++){
System.out.println("输入"+(i+1)+"个整数:");
arr[i]=sc.nextInt();
}
selectSort(arr);
System.out.println("选择排序后:");
//循环遍历数组
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.print("\n");
}
//选择排序算法
public static int[] selectSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
int min=i;
for(int j=i+1;j<arr.length;j++){
if(arr[min]>arr[j]){
min=j;
}
}
if(min!=i){
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
return arr;

}
}

13、输入一个数组,使用冒泡排序输出

package com.hz.array02;

import java.util.Scanner;

/**
* 13、输入一个数组,使用冒泡排序输出
* @author ztw
*
*/
public class Practice13 {

public static void main(String[] args) {
int[] arr = new int[10];
Scanner sc = new Scanner(System.in);
//循环输入10个整数存入数组
for(int i=0;i<arr.length;i++){
System.out.println("输入"+(i+1)+"个整数:");
arr[i]=sc.nextInt();
}
bubbleSort(arr);
System.out.println("冒泡排序后:");
//循环遍历数组
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.print("\n");
}
//冒泡排序算法
public static int[] bubbleSort(int[] arr){
//定义外循环
for(int i=0;i<arr.length;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;
}
}
}
return arr;

}
}