数组的创建以及排序算法
一维数组的创建
①先声明再申请空间
int[] array;
array = new int[5];
②声明并申请空间
int[] array = new int[5];
③声明数组并赋值
int[] array = new int[]{1,2,3};
④直接初始化操作
int[] arr = {1,2,3,4};//注意:该种方法不能分成两行来写,只能是一条语句完成
关于中括号的位置以下三种写法均正确:
int[] arr = new int[5];
int [] arr = new int[5];
int arr[] = new int[5];
数组中的默认值
数组是引用类型,当创建完成数组之后相当于在方法外定义了一个变量,此时数组中的值是有默认值的,默认值取决于你定义的数组的类型。
int:0
String:null
boolean:false
冒泡排序
public class ArraySort{
public static void main(String[] args){
int[] arr = new int[]{7,3,6,5,8,1,2};
int i,j;
for(i = 0;i < arr.length - 1;i ++){
for(j = 0;j < arr.length - 1 - i;j ++){
if(arr[j] > arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for(i = 0;i < arr.length;i ++)
System.out.print(arr[i] + "\t");
}
}
选择排序
public class ArraySort{
public static void main(String[] args){
int[] arr = new int[]{7,3,6,5,8,1,2};
int i,j,temp;
for(i = 0; i < arr.length - 1;i ++)
{
for(j = i + 1;j < arr.length;j ++)
{
if(arr[j] < arr[i]){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for(i = 0;i < arr.length;i ++)
System.out.print(arr[i] + "\t");
}
}
还有一种交换次数比较少的方式
public class ArraySort{
public static void main(String[] args){
int[] arr = new int[]{7,3,6,5,8,1,2};
int i,j,temp,min;
for(i = 0; i < arr.length - 1;i ++)
{ min = i;
for(j = i + 1;j < arr.length;j ++)
{
if(arr[j] < arr[min]){
min = j;
}
}
if(min != i)
{
temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
for(i = 0;i < arr.length;i ++)
System.out.print(arr[i] + "\t");
}
}
插入排序
public class ArraySort{
public static void main(String[] args)
{
int i,j,temp;
int[] arr = new int[]{7,3,6,5,8,1,2};
for(i = 1;i < arr.length;i ++){
for(j = i;j > 0;j --)
{
if(arr[j] < arr[j - 1])
{
temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
}
}
for(int k = 0;k < arr.length;k ++)
System.out.print(arr[k] + "\t");
}
}
二维数组的创建
二维数组是数组的数组
int[][] arr2 = new int[3][];
//创建二维数组的对象
arr2[0] = new int[3];
arr2[1] = new int[2];
arr2[2] = new int[2];
//赋值
arr2[0][0] = 1;
arr2[0][1] = 2;
arr2[0][2] = 3;
arr2[1][0] = 4;
arr2[1][1] = 5;
arr2[2][0] = 6;
arr2[2][1] = 7;
//打印输出
for(int i = 0;i < arr2.length;i ++){
for(int j = 0;j < arr2[i].length;j ++){
System.out.println(arr2[i][j] + "\t");
}
}