数组排序
什么是数组
数组是什么:用来存储同种数据类型的容器。(类型必须一致,否则编译不能通过)
数组的定义格式:数组的索引从0开始
1数据类型[ ] 数组名称 ;如 inr [ ] arr;
2.数据类型 数组名称 [ ] ;如int arr [ ];
数组的初始化:
动态初始化:定义了数组的长度,数组的元素由系统默认初始化、
数据类型[] 数组名称 = new 数据类型[数组长度] ;
int[] arr = new int[3] ;
数据类型 数组名称[] = new 数据类型[数组长度] ;
int arr[] = new int[3]
静态数组初始化:给定了数组元素的内容,由系统指定数组长度
格式:
数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3...} ;(推荐)
数据类型 数组名称[] = new 数据类型[]{元素1,元素2,元素3...} ;
简写方式:
数据类型[] 数组名称 = {元素1,元素2,元素3...} ;
int[] arr = {1,2,3,4,5,6} ;
数组初始化要么是静态,要么是动态,不能静态动态并存
如:int[] arr = new int[3]{1,2,3} ;
使用数组时的注意问题:
角标越界:注意数组长度,数组长度=索引长度减1,因为数组索引从零开始计算
空指针异常:数组对象为Null时访问内部元素
例如 int [ ] arr ={ 1,2,3 } ; 这时访问( arr[ 3 ] )会出错,因为角标越界
————————————————
版权声明:本文为CSDN博主「dis_llusion」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dis_1illusion/article/details/116542533
冒泡排序
冒泡排序是:两两比较,将较大的值往后方法,第一次比较完毕,最大值出现在最大索引处!依次这样比较...
最终比较次数:数组长度-1次
//创建一个数组,静态初始化
int[] arr = {24,69,87,56,13} ;
public static void bubbleSort(int[] arr){
for(int x = 0 ; x < arr.length-1 ; x ++){ //比较数组长度-1次
for(int y = 0 ; y < arr.length-1-x ; y++){
//判断
if(arr[y] > arr[y+1]){
int temp = arr[y] ;
arr[y] = arr[y+1] ;
arr[y+1] = temp ;
}
}
}
----------数组内的数据遍历输出-------------
public static void printArray(int[] arr){
System.out.print("[") ;//数组前输出[
for(int x = 0 ; x < arr.length ; x ++){
//判断
if(x == arr.length-1){
System.out.println(arr[x]+", ") ;
}else{
System.out.print(arr[x]+"]") ;//数组末尾输出]
}
}
}
选择排序
使用0角标对应的元素依次和后面的元素比较,小的值往前放,依次这样比较:
下一次1角标对应的元素和后面元素比较....
package W3_Test;
public class ArrTest {
public static void main(String[] args) {
int arr [] = {15,20,9,11,60};
System.out.print("排序前");
print(arr);
for (int i = 0; i <arr.length-1; i++) {
for (int j = i+1; j <arr.length ; j++) {
if(arr[j]>arr[i]){ //设置排序方式
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
System.out.print("排序后");
print(arr);
}
public static void sort(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[j] = arr[i];
temp = arr[j];
}
}
}
}
public static void print(int [] arr){
System.out.print(" [ ");
for (int i = 0; i < arr.length ; i++) {
if (i == arr.length-1) {
System.out.println(arr[i]+" ]");
}else{
System.out.print(arr[i]+", ");
}
}
}
}