(三)陣列的定義、折半查詢、排序(選擇和冒泡)
總結複習一下java se的一些知識點(三)
一、定義陣列
//定義一位陣列
int [] arr1 = new int[4];
int arr2[] = new int[2];
int [] arr3 = new int[]{1,2,3};
int [] arr4 = {22,6,7,3,7,6,9,3,353,77};//資料明確的時候
//定義二維陣列
int [][] arr5 = new int[2][3];
int [][] arr6 = new int[2][];
arr6[0] = new int[3];
arr6[1] = new int[5];
二、查詢方法(折半查詢)
//折半查詢的陣列必須是有序的
//方法一
public int halfSearch(int[] arr,int key)
{
int min,max,mid;
min = 0;
max = arr.length-1;
mid = (min+max)/2;
while(key!=arr[mid]){
if(key>arr[mid])
min = mid+1;
else if(key < arr[mid])
max = mid-1;
mid = (max+min)/2;
}
return mid;
}
//方法二
//折半查詢2
public static int halfSearch_2(int[] arr,int key){
int min,max,mid;
min = 0;
max = arr.length-1;
while (min <= max){
mid = (max+min)/2;
if(key>arr[mid])
min = mid+1;
else if(key < arr[mid])
max = mid-1;
else
return mid;
}
return -1;//表示不存在該數
/*
函式最後一句改為:return min;可以用來求出插入一個數,該數的下標,使排序不亂
*
* */
三、排序方法
//選擇排序
public static void selectSort(int[] arr){
for(int i = 0;i < arr.length-1;i++){
for(int j = i +1 ;j < arr.length;j++){
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
//氣泡排序:相鄰的兩個元素進行比較,如果符合條件,交換位置
public static void bubbleSort(int[] arr){
for(int i = 0;i < arr.length-1;i++){
for(int j = 0; j < arr.length-i-1;j++){//-i:每比較一次就會出現一個最大值,在末尾
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
//不管什麼排序,都要對滿足條件的元素進行位置置換
public static void swap(int[] arr,int a,int b){
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
在Java中有提供的類Arrays裡面的方法可以進行排序,可以在實際開發中使用
Arrays.sort(arr);
相關文章
- 陣列基本操作及冒泡演算法、直接選擇排序陣列演算法排序
- 折半查詢排序樹畫圖和排序
- 陣列選擇排序陣列排序
- 排序法:選擇、冒泡、插入和快排排序
- C語言:排列陣列的三種方法:冒泡法、選擇法、插入法C語言陣列
- 常見的三種排序演算法(選擇,冒泡,計數)排序演算法
- 單連結串列的排序(插入,選擇,冒泡)排序
- 最簡單易懂的三種排序演算法:冒泡、選擇、插入排序演算法
- C語言排序 冒泡 選擇 快排C語言排序
- 陣列中查詢給定值陣列
- 第三章:查詢與排序(下)----------- 3.23 相關題解:排序陣列中找和的因子排序陣列
- Javascript陣列排序sort方法和自定義排序方法JavaScript陣列排序
- 資料結構和演算法:03.冒泡、選擇排序資料結構演算法排序
- 七、排序,選擇、冒泡、希爾、歸併、快速排序實現排序
- 改進的氣泡排序和選擇排序(雙向冒泡/一次遍歷選出最大和最小的選擇排序)C語言實現排序C語言
- 基礎排序(冒泡、選擇、插入)學習筆記排序筆記
- js:陣列自定義排序JS陣列排序
- 在排序陣列中查詢元素的第一個和最後一個位置排序陣列
- 二分查詢和折半插入排序一塊說說-很合適~~~排序
- 選擇排序和快速排序排序
- 陣列的主元素查詢陣列
- 排序和查詢排序
- 每日一練(24):在排序陣列中查詢數字排序陣列
- 陣列的查詢(搜尋):線性查詢和二分法查詢陣列
- <二分查詢+雙指標+字首和>解決子陣列和排序後的區間和指標陣列排序
- 反射,hashlib模組,正則匹配,冒泡,選擇,插入排序反射排序
- 折半查詢法的平均查詢長度(成功/失敗)
- 選擇排序和氣泡排序排序
- 二維陣列查詢陣列
- 陣列的去重和排序陣列排序
- 1122. 陣列的相對排序(計數排序 / 自定義排序)陣列排序
- 第三章:查詢與排序(下)----------- 3.29 題解:判斷陣列的包含問題排序陣列
- 二維陣列中的查詢陣列
- 折半查詢(C++實現)C++
- 實體類定義陣列物件,和物件陣列物件
- JAVA陣列的定義及用法Java陣列
- java 陣列的定義(宣告)方法Java陣列
- Java 定義長度為 0 的陣列 / 空陣列Java陣列