前言
这几天快速的复习了一些java基础 。从今天开始打算把每天的学习笔记都记录在这里。尽量保证每天都更新
笔记内容:数组
一、数组的定义
int[] nums = {1,2,3};
int[] nums = new int[3];
类型[] 名字 = new 类型[长度];
二、数组的性质
1、数组一旦建立不能改变长度。
2、每个位置只能存一个值,多了会覆盖。
3、编号从0开始,下标。
4、他有个长度的属性,最后一个位置的编号是 长度-1。
5、数组里边可以是基本类型,也可以是引用类型。
三、数组的简单实用
1、打擂台的形式找最大值
int[] salary = {4,5,0,6,7,8};
int maxIndex = 0 ;
for (int i = 1; i < salary.length; i++) {
if(salary[i] > salary[maxIndex]){
maxIndex = i;
}
}
System.out.println("经过了n轮比赛得到的最大值得下标是:"+maxIndex+"。值是:"+salary[maxIndex]);
2、通循环遍历打印数组的每一个值
for (int i = 0; i < salary.length; i++) {
System.out.print(salary[i] + " ");
}
3、查找一个数组里存在的值。
int targetIndex = -1;
for (int i = 0; i < salary.length; i++) {
if(salary[i] == 9){
targetIndex = i;
}
break;
}
4、元素的位移。
int[] salary = {4,5,0,6,7,8};
int temp = salary[0];
salary[0] = salary[1];
salary[1] = temp;
四、排序算法
1、选择
每一轮都是在找一个最小值放在未拍好序的元素的第一个
int[] nums = {4,6,0,8,7};
for (int j = 0 ; j < nums.length -1 ; j++){
int minIndex = j;
for (int i = j+1; i < nums.length; i++) {
minIndex = nums[i] < nums[minIndex] ? i : minIndex;
}
int temp = nums[minIndex];
nums[minIndex] = nums[j];
nums[j] = temp;
}
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
}
2、冒泡
每一轮都是两两相比,会将最大的冒到最后边
int[] nums = {3, 7, 4, 9, 5, 4, 1};
for (int j = 0; j < nums.length - 1 ; j++) {
for (int i = 0; i < nums.length - 1 -j ; i++) {
if (nums[i] > nums[i + 1]) {
int temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
}
}
}
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
}