package com.kevin.springbootkevin1.util;
import java.util.Random;
import java.util.Scanner;
import static sun.nio.ch.IOStatus.EOF;
public class Array {
//创建
void producerArr(int arr[],int len) {
int res = 0;
int l = 100,r = 1000;
Random random = new Random();
for (int i=0;i<len;i++) {
arr[i] = random.nextInt(r-l+1)+l;
}
}
//冒泡排序
void bubbleSort(int arr[],int len) {
for(int i=0;i<len;i++) {
for(int j=0;j<len-1;j++) {
if(arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
//选择排序
void selectSort(int arr[],int len) {
for(int i=0;i<len;i++) {
int minv = i;
for(int j=i;j<len;j++) {
//找到最小数,并记录最小数的索引
if(arr[j] < arr[minv]) {
minv = j;
}
}
if(minv > i) {
int t = arr[i];
arr[i] = arr[minv];
arr[minv] = t;
}
}
}
//打印
void printArr(int arr[],int len) {
int index = 0;
for (int i:arr) {
index++;
System.out.print(i+" ");
if(index % 10 == 0) { //每隔10个就换行
System.out.println();
}
}
System.out.println();
}
int selectElement(int arr[],int len,int x) {
int isok = 0;
int index = 0;
for(int i=0;i<len;i++) {
if(arr[i] == x) {
index = i;
isok = 1;
break;
}
}
if(isok == 1) return index;
else return -1;
}
//main函数-测试
public static void main(String args[]){
int len = 50;
int[] arr = new int[len];
Array array = new Array();
//产生一维数组-并打印
array.producerArr(arr,len);
System.out.println("产生的一维数组:");
array.printArr(arr,len);
//重新产生一维数组-冒泡排序-并打印
array.producerArr(arr,len);
System.out.println("冒泡排序前:");
array.printArr(arr,len);
array.bubbleSort(arr,len);
System.out.println("冒泡排序后:");
array.printArr(arr,len);
//重新产生一维数组-选择排序-并打印
array.producerArr(arr,len);
System.out.println("选择排序前:");
array.printArr(arr,len);
array.selectSort(arr,len);
System.out.println("选择排序后:");
array.printArr(arr,len);
//查找指定元素,返回位置
System.out.print("请输入你要查找的元素:");
int x = 0;
Scanner sc = new Scanner(System.in);
while((x = sc.nextInt()) != EOF) {
System.out.print("请输入你要查找的元素:");
x = array.selectElement(arr,len,x);
if(x != -1) System.out.println("该元素所在数组索引是:" + x);
else System.out.println("未查找到!");
}
}
}