一.数组的基本使用
public class demo{
public static void main(String[] args){
//使用数组四部走
int[] a; //声明数组
a = new int[5]; //分配空间
for(int i=0;i<5;i++){
a[i] = i;
}
a[0] = a[0]*10; //处理数据
for(int i=0;i<5;i++){
System.out.println(a[i]);
}
}
}
1.四种写数组方法
public class demo{
public static void main(String[] args){
//第一种
int arr1[]; //声明
arr1 = new int[5]; //分配空间
arr1[0] = 1; //赋值
//第二种
int arr2[] = new int[5]; //声明并分配空间
arr2[0] = 32; //对数据赋值
//第三种
int arr3[] = {8,2,3,4}; //声明、赋值、分配
//第四种
int arr4[] = new int[]{2,5,8,7}; //声明、赋值、分配
System.out.println(arr1[0]);
System.out.println(arr2[0]);
System.out.println(arr3[0]);
System.out.println(arr4[0]);
}
}
二.数组的排序
import java.util.Arrays; //Arrays的sort()排序
import java.util.Scanner;
public class demo1{
public static void main(String[] args){
Scanner data = new Scanner(System.in);
int[] arr1 = new int[10];
String[] arr2 = new String[7];
//对数字进行排序
for(int i=0;i<arr1.length;i++)
{
System.out.println("请输入第"+ i +"学生成绩");
arr1[i] = data.nextInt(); //数值赋值
}
Arrays.sort(arr1); //对数组排序
for(int i=0;i<arr1.length;i++)
{
System.out.println(arr1[i]);
}
//对字母进行排序
for(int i=0;i<arr2.length;i++)
{
System.out.println("请输入字母"+ i);
arr2[i] = data.next(); //字符赋值
}
Arrays.sort(arr2); //对数组排序[逆序]
for(int i=arr2.length-1;i>=0;i--)
{
System.out.println(arr2[i]);
}
}
}
三.数组的复制
import java.util.Scanner;
public class demo{
public static void main(String[] args){
//数组的复制
int arrA[] = new int[]{2,3,4,5,6,7};
int [] arrB = new int[arrA.length];
for(int i=0;i<arrA.length;i++){
arrB[i] = arrA[i];
}
for(int i=0;i<arrB.length;i++){
System.out.println(arrB[i]);
}
}
}
四.数组的查找算法
import java.util.Scanner;
public class demo{
public static void main(String[] args){
//数组查找算法
String arr[] ={"张三","里斯","网二","码字","庇护"};
Scanner data = new Scanner(System.in);
System.out.println("请输入查找的学生的姓名:");
String name = data.next(); //输入查找值
boolean flag = false; //查找标志位
for(int i=0;i<arr.length;i++){ //循环数组查找
if(name.equals(arr[i])){ //如果输入值等于数组值
flag=true;
break;
}
}
if(flag == true){
System.out.println("找到了!");
}
else{
System.out.println("没找到!");
}
}
}
五.数组插入算法
import java.util.Scanner;
public class demo{
public static void main(String[] args){
//数组插入算法
Scanner data = new Scanner(System.in);
int[] arr = {2,3,4,5,6,7}; //长度为6
System.out.println("请输入你要插入的数值:");
int num=data.nextInt(); //获取输入的数值赋值给num
arr[arr.length-1] = num; //把num插入到最后
for(int i=arr.length-1;i>0;i--){ //从后到前遍历
if(arr[i]<arr[i-1]){ //如果前一个大于后一个
int t = arr[i]; //交换前后
arr[i] = arr[i-1];
arr[i-1] = t;
}
else{ //否则跳出循环
break;
}
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
六.数组冒泡排序
public class demo{
public static void main(String[] args){
//数组冒泡排序
int arr[] = new int[]{12,5,18,10,11,17}; //长度6
for(int j=0;j<=arr.length-1;j++){ //循环
for(int i=0;i<arr.length-1;i++){//主要将大的向后移动
if(arr[i]>arr[i+1]){
int t = arr[i];
arr[i] = arr[i+1];
arr[i+1] = t;
}
}
}
for(int i=0;i<arr.length;i++){ //输出
System.out.println(arr[i]);
}
}
}
七.选择排序原理
public class demo{
public static void main(String[] args){
//选择排序 (打擂台)
int []arr = new int[]{9,8,7,6,5,4,3,2,1};
int replace = 0;
int bj = 0;
for(int i=0;i<arr.length-1;i++){ //循环次数
for(int j=i+1;j<arr.length;j++){//每次循环比较的个数
if(arr[i] > arr[j]){
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
replace++; //交换次数
}
//比较次数
bj++;
}
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
System.out.println("交换次数:" + replace);
System.out.println("比较次数:" + bj);
}
}
