建立
public static void main(String[] args) {
//声明 创建 创建了一个容量为5的数组,创建数组时必须要明确数组的容量,容量一旦确定不能改变
int[] a = new int[5];
int b[] = new int[10];
// int[] c,d;(建议使用)
System.out.println(Arrays.toString(a));//把数组以字符串的形式输出 便于调试
System.out.println(Arrays.toString(b));
//创建数组时,为数组赋值容量由值得个数决定
// int[] c = new int[]{1,2,3,4,5,6,7};
int c[] = {1,2,2,3,4,5};
System.out.println(Arrays.toString(c));
char[] chars = new char[5];
System.out.println(Arrays.toString(chars));
boolean[] booleans = new boolean[5];
// boolean[] b ={"true","false"};
System.out.println(Arrays.toString(booleans));
String [] strings = new String[5];
System.out.println(Arrays.toString(strings));
float[] floats = new float[4];
System.out.println(Arrays.toString(floats));
}
访问
package day1;
import java.util.Arrays;
public class 访问 {
/*
数组访问
数组里面可以存储多个值,如何访问(赋值,获取)数组中的每个数
数组中的每个空间,都有一个下标(索引 index 编号)
特点:整数 开始0 最大索引(长度-1)
{1,2,3,4,5}
0 1 2 3 4
数组长度是有限制的 最大的也就是int的最大值
数组内部空间都必须是连续的
*/
public static void main(String[] args) {
int [] a = new int[5];
a[0] = 2;
a[1] = 5;
a[2] = 4;
a[3] = 8;
a[4] = 10;
System.out.println(Arrays.toString(a));
System.out.println(a[2]);
//数组便历 取出数组中每一个值
//index 0 --长度-1
System.out.println(a.length);
/*for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}*/
/*
增强for循环
for(类型 变量:数组)
隐藏了遍历的细节
每次从数组中取出一个元素
*/
for( int t :a){
System.out.println(t);
}
//找出数组中最大的值
}
}
排序
package day1;
import java.util.Arrays;
public class 排序 {
/*
排序:比较,交换
冒泡排序
思想:每一次取出相邻的两个元素进行比较,大的往后,小的往前
{5,4,3,2,1};
4,3,2,1,5
3,2,1,4,5
2,1,3,4,5
1,2,3,4,5
选择排序
开始从第一个元素开始,与后面的每一个元素进行比较吧最小的元素与当前调换
*/
public static void main(String[] args) {
int [] a = {5,4,3,2,1};
for(int i = 0;i < a.length-1;i++){//比较的趟数
for(int j = 0;j < a.length-1-i;j++){
if(a[j]>a[j+1]){
int temp = a[j];//先寄存一个元素
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(a));
}
}
选择排序
package day1;
import java.util.Arrays;
public class 选择排序 {
public static void main(String[] args) {
int [] a = {2,3,1,4,5};
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]<a[j]){
int b = a[j];
a[j] = a[i];
a[i] =b;
}
}
}
System.out.println(Arrays.toString(a));
}
}
选择排序优化
package day1;
import java.util.Arrays;
public class 选择排序优化 {
public static void main(String[] args) {
int []a = {5,1,4,2,3};
for(int i = 0;i<a.length-1;i++){
int mix = i;
for(int j = i+1;j<a.length;j++){
if(a[mix]>a[j]){
mix = j;
}
}
int b = a[mix];
a[mix] = a[i];
a[i] = b;
}
System.out.println(Arrays.toString(a));
}
}
6.二分法
package day1;
import java.util.Arrays;
public class 二分法 {
public static void main(String[] args) {
int[] array = {7,3,6,5,4,5,2,1,9};
二分法.mysort(array);
int key = 2;
int index = 二分法.myBinarySearch(array,key);
System.out.println(index);
// int low = 0;
// int hei = array.length-1;
// while (hei>low){
// int mid = (low + hei)/2;
// int minval = array[mid];
// if (minval>key){
// hei = mid-1;
// }else if(minval<key){
// low = mid+1;
// }else {
// System.out.println(mid);
// break;
// }
// }
}
public static void mysort(int [] array){
for(int i = 0; i<array.length-1;i++){
for(int j=0;j<array.length-1;j++){
if(array[j]>array[j+1]){
int b = array[j];
array[j] = array[j+1];
array[j+1] = b;
}
}
}
System.out.println(Arrays.toString(array));
}
public static int myBinarySearch(int [] array,int key){
int low = 0;
int hei = array.length-1;
while (hei>low){
int mid = (low + hei)/2;
int minval = array[mid];
if (minval>key){
hei = mid-1;
}else if(minval<key){
low = mid+1;
}else {
return mid;
}
}
return -1;
}
}