排序算法
- 时间复杂度 : 分析关键字的比较次数和激动的移动次数
- 空间复杂度 : 分析排序算法中需要多少辅助内存
- 稳定性 : 若两个记录A和B的关键字值相等,但排序后A,B的先后次序保持不变,则称这种排序算法的稳定的
内部排序 : 所有的排序都在内存中完成
外部排序 : 需要借助磁盘,外部存储设备
算法的五大特征
public class Test1 {
public static void main(String[] args) {
int[] arr = new int[] {
43,2333,21231,1231,23,89,74};
for(int i = 0; i < arr.length - 1 ; i++) {
for (int 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(int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}
数组练习
public class Test {
public static void main(String[] args) {
int[][] arr = new int[10][];
for(int i = 0; i < arr.length; i++) {
arr[i] = new int[i+1];
arr[i][0] = arr[i][i] = 1;
if( i > 1) {
for(int j = 1 ; j < arr[i].length-1;j++) {
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0 ; j < arr[i].length;j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
String[] str1 = new String[] {
"A","B","C","D"};
for (int i = str1.length - 1, j = 0; j < i; j++, i --) {
String temp = str1[j];
str1[j] = str1[i];
str1[i] = temp;
}
for(int i = 0 ; i < str1.length; i++) {
System.out.print(str1[i]+" ");
}
System.out.println();
int[] arr1 = new int[] {
12,34,10,-12,56,78};
int desc = 10;
boolean flag = true;
lablefor: for(int i = 0; i < arr1.length; i++) {
if(desc == arr1[i]) {
System.out.println("找到了,其索引位置为 "+i);
flag = false;
break lablefor;
}
}
if(flag) {
System.out.println("数字未找到!");
}
int[] arr2 = new int[] {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int desc1 = 9;
int head = 0;
int end = arr2.length - 1;
boolean flag1 = true;
while(end >= head) {
int mid = (head + end) / 2;
if(arr2[mid] == desc1) {
System.out.println("找到了,其索引位置为 "+mid);
flag1 = false;
break;
}else if(arr2[mid] > desc1) {
end = mid - 1;
}else {
head = mid + 1;
}
}
if (flag1) {
System.out.println("数字未找到!");
}
}
}
Arrays工具类
import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
int[] a = new int[] {
1,2,3,4,5};
int[] b = new int[] {
7,2,5,4,9};
boolean flag1 = Arrays.equals(a, b);
System.out.println(flag1);
System.out.println(Arrays.toString(a));
Arrays.fill(a, 1);
System.out.println(Arrays.toString(a));
Arrays.sort(b);
System.out.println(Arrays.toString(b));
int[] c = new int[] {
12,45,-12,67,44,78};
int index = Arrays.binarySearch(c, -12);
if (index >= 0) {
System.out.println(index);
}else {
System.out.println("Error");
}
}
}