需求: 封裝乙個函式 傳入數字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...