1.定义方法:
int [] a = new int[10];
int [] b = new int[]{1,2,3,4,5};//动态初始化
int [] c = {1,2,3,4,5};//静态初始化
2.数组相关算法:
2.1冒泡排序
每次遍历,如果前一位大于后一位的话,就将前一位大的数字向后移动。最终实现将数组从小到大依次排序。
int [] c = {1,2,3,4,5,6,7,33,44,11,7,99,88};
int temp;
for (int j = 0;j<c.length-2;j++){
for (int i = 0;i<c.length-1;i++){
if (c[i] > c[i+1]){
temp = c[i];
c[i] = c[i+1];
c[i+1] = temp;
}
}
}
for (int n = 0;n<c.length;n++){
System.out.print(c[n]+ " ");
}
2.2二分查找
在一个已经排好顺序的数组中查找指定的数字,如果找到了就返回该数字的下标,如果找不到则返回-1
int [] c = {1,2,3,4,5,6,7,33,44,11,7,99,88};
int key = 11;
int lo = 0;
int hi = c.length-1;
int index = -1;
while (lo<=hi){
int mid = (lo+hi)/2;
if (key<c[mid]){
hi = mid-1;
}else if (key>c[mid]){
lo = mid + 1;
}else {
index = mid;
break;
}
}
System.out.println(index);
for (int i = 0;i<c.length;i++){
System.out.print(c[i]+" ");
}
2.3选择排序
int [] c = {1,2,3,4,5,6,7,33,44,11,7,99,88};
for (int i = 0;i<c.length-1;i++){
int min = i;
for (int j = i+1;j<c.length;j++){
if (c[j] < c[min]){
min = j;
}
}
if (min != i){
int temp = c[min];
c[min] = c[i];
c[i] = temp;
}
}
2.4快速排序
public static void quicksort(int[] c,int lo,int hi){
int i,j,temp,t;
if (lo>hi){
return;
}
i = lo;
j = hi;
t = c[lo];
while(i<j){
while (t<=c[j]&&i<j){
j--;
}
while (t>=c[i]&&i<j){
i++;
}
if (i<j){
temp = c[i];
c[i] = c[j];
c[j] = temp;
}
}
c[lo] = c[i];
c[i] = t;
quicksort(c,lo,j-1);
quicksort(c,j+1,hi);
}
public static void main(String[] args) {
int [] c = {1,2,3,4,5,6,7,33,44,11,7,99,88};
quicksort(c,0,c.length-1);
for (int i = 0; i < c.length; i++) {
System.out.println(c[i]);
}
}
}