アレイ(配列)クラス
1、配列(アレイ)クラス
- 操作のためのツールの配列
- それは一種の発見する機能を提供します
方法の2、メンバー
public static String toString(int[] a)
public static void sort(int[] a)
public static int binarySearch(int[] a,int key)
第二に、配列をソート
1、バブルソート
- 任意の二つの隣接する要素、初めて次の大きなリリースは、完成された、最大の指数で最大
コードのバブルソートの配列:
package shuzu;
public class ArrayDm {
public static void main(String[] args){
int[] arr = {90,12,54,3,76,15};//定义一个数组
System.out.println("数组排序前:");
printArray(arr);
bubbleSort(arr);
System.out.println("排序后:");
printArray(arr);
}
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length -1; i++){
for (int j = 0; j < arr.length - 1 - i; j++){
if (arr[j] > arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
public static void printArray(int[] arr) {
System.out.println("[");
for (int i = 0; i < arr.length; i++){
if(i == arr.length - 1){
System.out.println(arr[i]);
}else{
System.out.println(arr[i] + ",");
}
}
}
}
2、ソートする文字列
package shuzu;
public class ArrayDm {
public static void main(String[] args) {
String s = "fdeacbg";//定义一个字符串
char[] arr = s.toCharArray();//把字符串转换成数组
paixu(arr);//把字符数组进行排序
String result = String.valueOf(arr);//把排序后的字符数组转成字符串
System.out.println(result);//输出字符串;
}
private static void paixu(char[] arr) {//冒泡排序
for (int i = 0; i < arr.length - 1; i++){
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
char temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
}
並べ替えを選択します
- 0インデックスから、そして初めて、前方の比較的小さなプットの要素を元に戻すには、最小のインデックスの最小を完了しました
package shuzu;
public class ArrayDm {
public static void main(String[] args) {
// 定义一个数组
int[] arr = { 24, 69, 80, 57, 13 };
System.out.println("排序前:");
printArray(arr);
//用方法改进
selectSort(arr);
System.out.println("排序后:");
printArray(arr);
}
public static void selectSort(int[] arr){
for(int x=0; x<arr.length-1; x++){
for(int y=x+1; y<arr.length; y++){
if(arr[y] <arr[x]){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
// 遍历功能
public static void printArray(int[] arr) {
System.out.print("[");
for (int x = 0; x < arr.length; x++) {
if (x == arr.length - 1) {
System.out.print(arr[x]);
} else {
System.out.print(arr[x] + ", ");
}
}
System.out.println("]");
}
}
第三に、配列検索
1、バイナリ検索
package shuzu;
public class ArrayDm {
public static void main(String[] args) {
//定义一个数组
int[] arr = {11, 22, 33, 44, 55, 66, 77};
//写功能实现
int index = getIndex(arr, 33);
System.out.println("index:" + index);
//假如这个元素不存在后有什么现象呢?
index = getIndex(arr, 333);
System.out.println("index:" + index);
}
/*
* 两个明确:
* 返回值类型:int
* 参数列表:int[] arr,int value
*/
public static int getIndex(int[] arr, int value) {
//定义最大索引,最小索引
int max = arr.length - 1;
int min = 0;
//计算出中间索引
int mid = (max + min) / 2;
//拿中间索引的值和要查找的值进行比较
while (arr[mid] != value) {
if (arr[mid] > value) {
max = mid - 1;
} else if (arr[mid] < value) {
min = mid + 1;
}
//加入判断,返回-1说明找不到
if (min > max) {
return -1;
}
mid = (max + min) / 2;
}
return mid;
}
}
直接Javaのバイナリ検索ツールを呼び出します
package shuzu;
import java.util.Arrays;//直接调用Java工具类
public class ArrayDm {
public static void main(String[] args) {
// 定义一个数组
int[] arr = { 24, 69, 80, 57, 13 };
//System.out.println(Arrays.toString(arr));
// public static String toString(int[] a) 把数组转成字符串
System.out.println("排序前:" + Arrays.toString(arr));
// public static void sort(int[] a) 对数组进行排序
Arrays.sort(arr);
System.out.println("排序后:" + Arrays.toString(arr));
// [13, 24, 57, 69, 80]
// public static int binarySearch(int[] a,int key) 二分查找
System.out.println("binarySearch:" + Arrays.binarySearch(arr, 57));
System.out.println("binarySearch:" + Arrays.binarySearch(arr, 577));
}
}