一维数组学习

文章详细介绍了在Java中如何创建、访问和操作数组,包括固定容量数组和动态赋值数组的声明,以及数组的遍历输出。接着,文章探讨了两种基本排序算法——冒泡排序和选择排序,并展示了它们的实现过程。最后,文章提到了二分法在数组查找中的应用,以及简单的排序和查找优化技巧。
摘要由CSDN通过智能技术生成
  1. 建立

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));

}

  1. 访问

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);

}

//找出数组中最大的值

}

}

  1. 排序

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));

}

}

  1. 选择排序

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));

}

}

  1. 选择排序优化

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;

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值