Java陣列及陣列排序 查詢

2021-08-14 08:27:46 字數 3480 閱讀 2998

需求: 封裝乙個函式 傳入數字1 返回 一  數字2 返回 二 ...

...

//  封裝函式

public

static

char

findarray(int index) ;

// 按角標 返回對應的字元

return array[index - 1];

}

//  main函式中呼叫封裝函式指令

char c = findarray(3);

system.out.println(c);

需求: 定義乙個陣列 陣列值分別 為:3,6,11,22 輸入11查詢對應的位置;
//  封裝函式

public

static

int findindex(int i, int array)

}// 如果函式執行到這步 就說明 上面沒有找到對應角標 直接返回-1;

return -1 ;

}

// 在main函式的測試方法

int array = new

int;

intindex = findindex(12, array);

if(index == -1)

需求:操作原陣列 使原陣列反轉
1.反轉次數:length/2 (整數)次

2.交換規律:第乙個和最後乙個數交換 依次換......

array[0] 和 array[length - 1 - 0]

array[1] 和 array[length - 1 - 1]

array[2] 和 array[length - 1 - 2]

總結:array[i] 和 array[length - 1 - i] 相互交換

3.實現交換:利用中間值來交換

//  建構函式

public

static

void reverse(int array)

// 遍歷陣列的方法

system.out.println(arrays.tostring(array));

}}

//  測試

int array = new

int;

// 這裡做的是乙個 位址的傳遞

reverse(array);

需求:封裝乙個函式 交換陣列 x 和 y 角標的值
//  建構函式

public

static

void changearray(int x, int y, int array)

//  測試函式

int array = new

int;

changearray(3, 2, array);

system.out.println(arrays.tostring(array));

核心:相鄰兩個數進行比較 交換位置
需求:對含有以下元素:3, 2, 5, 1的陣列 進行氣泡排序
int array = new

int;

// 1.把雙層迴圈結構搭建出來

/* * 注意:

* 內迴圈 -1 防止陣列越界

* 外迴圈 -1 代表 5個數 比價4趟 比較陣列長度-1趟

* 內迴圈 -i 每一趟都少比一次

* 外迴圈相當於 比較多少趟

* 內迴圈相當於 一趟多少次

*/for (int i = 0; i < array.length - 1; i++)

}}// 列印陣列

system.out.println(arrays.tostring(array));

核心:選擇乙個數依次和後面的數比較 換位
需求:對含有以下元素:3, 2, 5, 1的陣列 進行選擇排序
int array = new

int;

// 1.寫迴圈構架

for (int i = 0; i < array.length - 1; i++)

}}system.out.println(arrays.tostring(array));

需求:

1.隨機數[1,100]的數

2.讓使用者輸入乙個數

3.輸入的這個數 和 隨機出來這個數 比較

4.告訴使用者 猜的 是大 還是小了

5.迴圈猜 一直到 猜中為止

//  隨機數

int num =(int)(math.random() * 100 + 1);

// 提示使用者輸入

system.out.println("我隨機了乙個數 看你能不能猜到 請輸入:");

scanner scanner = new scanner(system.in);

// 迴圈猜

while (true) else

if (newnum < num) else

}system.out.println("電腦隨機數的是:" + num);

優點:提高查詢效率

注意:在有序的陣列中 查詢

需求:在含有以下元素:3, 5, 6, 9, 12, 18, 22, 33的陣列中 查詢 22 對應的角標
1.明確所要用到的所有變數

2.確定執行迴圈的條件: array[mid] != key;

int array = new int;

intmin = 0;

intmax = array.length - 1;

int mid = (max + min) / 2;

// 要查詢的值

int key = 12;

/* * 迴圈查詢

* array[mid] != key;

*/while (array[mid] != key) else

if (key < array[mid])

// 挪動完角標後 還要進行折半操作

mid = (max + min) / 2;

// 當最大角標 小於 最小角標的時候 說明陣列沒有這個數

if (max

< min)

}system.out.println("這個數的角標是:" + mid);

Java 陣列,排序,查詢學習

1.陣列可以存放多個同一型別資料。2.物件陣列以及賦值,建立乙個物件陣列,初始化賦值的時候要引用一下物件 3.簡單資料型別 int,float 陣列,可直接賦值 4.物件陣列在定義之後,賦值時需要再次為每個物件分配空間 即 new 物件 5.陣列大小必須事先指定 6.陣列名可以理解為執向陣列首位址的...

java基礎 陣列及排序

陣列 資料型別 陣列名 初始化值 這裡的資料型別指的是陣列中存放元素的資料型別 什麼是陣列 容器,可以盛放一組資料 相同型別 如何來盛放 根據下標來在放資料 下標從零開始 示例 定義陣列的形式1 int array new int 2 不清楚陣列內容的時候使用的,陣列長度一旦給定就不能更改 new代...

java基礎6 陣列 排序 查詢 多維陣列

陣列 陣列可以存放 多個同一類資料 養雞場 有很多雞 體重各不一樣 怎麼算他們的平均體重 語法 陣列的定義 資料型別 陣列名 new 資料型別 大小 int a new int 5 int a 也可以 還可以 int a 1,2,3,4,5 陣列的引用 陣列名 下標 a 3 public class...