一、算法
解决某个实际问题的过程和方法
1、排序算法
冒泡排序
●每次从数组中找出最大值放在数组的后面去。
实现冒泡排序的关键步骤分析
●确定总共需要做几轮:数组的长度-1.
●每轮比较几次:
●当前位置大于后一个位置则交换数据
import java.lang.reflect.Array;
import java.util.Arrays;
public class algorithm {
public static void main(String[] args) {
int[] arr = {1,5,3,2};
for (int i = 0; i < arr.length - 1; i++) {
int k;
for (int j = 0; j < arr.length - i -1; j++) {
if(arr[j] > arr[j+1]){
k = arr[j];
arr[j]= arr[j+1];
arr[ j+ 1] = k;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
选择排序
●每轮选择当前位置,开始找出后面的较小值与该位置交换
选择排序的关键
●确定总共需要选择几轮:数组的长度-1.
●控制每轮从以前位置为基准,与后面元素选择几次。
import java.lang.reflect.Array;
import java.util.Arrays;
public class algorithm {
public static void main(String[] args) {
int[] arr = {1,5,3,2};
for (int i = 0; i < arr.length - 1; i++) {
int k;
for (int j = i + 1; j < arr.length ; j++) {
if(arr[i] > arr[j]){
k = arr[i];
arr[i]= arr[j];
arr[j] = k;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
学习算法的技巧
1、先搞清楚算法的流程。
2、直接去推敲如何写代码。
2、查找算法
二分查找(折半查找)
public class algorithm1 {
public static void main(String[] args) {
int[] arr = {7, 9 ,23,28,89,97,211,541,4500,8600};
System.out.println(binarySearch(arr, 89));
}
public static int binarySearch(int[] arr, int data){
int left = 0;
int right =arr.length - 1;
while (left <= right){
int m = (left + right)/2;
if (data < arr[m]) {
right = m -1;
}else if(data > arr[m]){
left = m +1;
}else{
return m;
}
}
return -1;
}
}
二、正则表达式
就是由一些特定的字符组成,代表的是一个规则。
作用一:用来校验数据格式是否合法
作用二:在一段文本中查找满足要求的内容.
三、异常
异常就是代表程序出现的问题
异常的体系
Error:代表的系统级别错误(属于严重问题),也就是说系统一旦 出现问题, sun公司会把这些问题封装成Error对象给出来,
说白了,Error是给sun公司自己用的,不是给我们程序员用的,因此我们开发人员不用管它。
Exception:叫异常,它代表的才是我们程序可能出现的问题,所以,我们程序员通常会用Exception以及它的孩子来封装程序出现的问题。
●运行时异常: RuntimeException及其子类,编译阶段不会出现错误提醒,运行时出现的异常( 如:数组索引越界异常)
●编译时异常:编译阶段就会出现错误提醒的。( 如:日期解析异常)
抛出异常(throws )
●在方法上使用throws关键字,可以将方法内部出现的异常抛出去给调用者处理。
方法throws异常1,异常2,异常3 .{
...
}
捕获异常(Try..catch)
●直接捕获程序 出现的异常。
try{
//监视可能出现异常的代码!
}catch(异常类型1变量){
//处理异常
}catch(异常类型2变量){
//处理异常
}...
自定义异常
●Java无法为 这个世界上全部的问题都提供异常类来代表,如果企业自己的某种问题,想通过异常来表示,以便用异常来管理该问题,那就需要自己来定义异常类了。
异常的处理
抛出异常和捕获异常的写法优化