马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 糖逗 于 2020-8-17 13:52 编辑
学习视频:https://www.bilibili.com/video/BV17J411G72L?p=20
108-120
/*
*数组的查找(1)数组中元素时无序的(2)元素是有序的
*/
class test06_01{
public static void main(String[] args){
//无序则顺序查找
int[] arr = {1, 4, 3, 2};
int value = 2;
for(int i = 0; i < arr.length; i++){
if(arr[i] == value){
System.out.println("find!");
break;
}
}
//有序,二分查找
int[] arr1 = {1, 3, 4, 6, 7, 9};
int left = 0, right = arr.length - 1;
int mid = (left + right)/2;
while(left < right){
if(arr[mid] == value){
System.out.println("找到了!");
}else if(value > arr[mid]){
left = mid + 1;
}else{
right = mid - 1;
}
mid = (left + right) / 2;
}
}
}
/*
*排序
*/
class test06_02{
public static void main(String[] args){
//冒泡排序
int[] arr = {4, 2, 3, 5, 9};
//相邻元素比较,不符合就交换
for(int i = 1; i < arr.length; i++){
for(int j = 0; j < arr.length - i; j++){
if(arr[j] > arr[j-1]){
int temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;
}
}
}
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
//直接选择排序
for(int i = 0; i < arr.length - 1; i++){
//找出本轮未排序元素中的最小值及其下标
int min = arr[i];
int index = i;
for(int j = i + 1; j < arr.length; j++){
if(arr[j] < min){
min = arr[j];
index = j;
}
}
//看最小值是否在它应该在的位置
if(index != i){
int temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
}
}
}
//数组的维度
class test06_03{
public static void main(String[] args){
//静态初始化
//(1)
int[][] scores;
scores = new int[][]{{23,23,43}, {23,33,22, 43}, {33,22}};
//(2)
int[][] score = {{23,23,43}, {23,33,22, 43}, {33,22}};
//遍历
for(int i = 0; i < scores.length; i++){
for(int j = 0 ; j < scores[i].length; j++){
System.out.print(scores[i][j] + " ");
}
System.out.println();
}
//动态初始化
//(1)确定行数
int[][] arr = new int[4][];
//(2)确定每一行的列数
for(int i = 0; i < arr.length; i++){
arr[i] = new int[5];
}
//(3)确定元素值
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[i].length; j++){
arr[i][j] = i + 1;
}
}
//每行的列数相同可以直接
int[][]arr1 = new int[4][5];
}
}
|