冒泡排序
使用冒泡排序,实现如下的数组从小到大排序。
int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
package com.company;
import java.lang.reflect.Array;
import java.util.Random;
public class Test_stack {
public static void BubbleSort(int []array){
if (array == null || array.length < 2){
return;
}
int swapFlag = 0;
for (int i = 0; i < array.length; i++){ // 要排序n遍。
for (int j = 1; j < array.length - i; j ++){ // 用于控制两两交换:每一次比较,最好i个元素就拍好顺序了
if (array[j - 1] > array[j]){ // 逆序
int temp = array[j - 1];
array[j - 1] = array[j];
array[j] = temp;
swapFlag = 1;
}
}
if (swapFlag == 0){
break;
}
swapFlag = 0;
}
}
public static void main(String[] args) {
int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
BubbleSort(arr);
for (int i:arr) {
System.out.print(i + "\t");
}
}
}
反转数组
如何反转上面的数组。请代码实现
package com.company;
public class Test_stack {
public static void ReversalArray(int []array){
if (array == null || array.length < 2){
return;
}
int low = 0;
int high = array.length - 1;
while (low < high){
int temp = array[low];
array[low] = array[high];
array[high] = temp;
low ++;
high--;
}
}
public static void main(String[] args) {
int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
ReversalArray(arr);
for (int i:arr) {
System.out.print(i + "\t");
}
}
}
关键字:双指针
复制数组
复制上述数组,得到一个新的数组
package com.company;
public class Test_stack {
public static int[] CopyArray(int []array){
if (array == null){
return null;
}
int[] brr = new int[array.length];
for (int i = 0; i < array.length; i++){
brr[i] = array[i];
}
return brr;
}
public static void main(String[] args) {
int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
int [] brr = CopyArray(arr);
for (int i:brr) {
System.out.print(i + "\t");
}
}
}
线性查找元素
使用线性查找,从上述数组中查找22是否存在。存在,返回所在位置的索引。不存在,输出提示信息。
package com.company;
public class Test_stack {
public static int searchArray(int []array, int search){
if (array == null){
System.out.println("找不到");
return -1;
}
for (int i = 0; i < array.length; i++){
if (array[i] == search){
return i;
}
}
System.out.println("找不到");
return -1;
}
public static void main(String[] args) {
int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
int brr = searchArray(arr, 22);
System.out.print(brr + "\t");
}
}
数组常见异常
NullPointerException:空指针异常
- 空指针异常
NullPointerException:空指针异常
int[] arr = null;
arr[0];
- ArrayIndexOutOfBoundsException:数组角标越界异常:
int [] arr = new int[3];
System.out.print(arr[5] + "\t");