import java.util.Arrays;
/**
* 算法类 : Arithmetic
* @author Mr.Wang
*
*/
public class Arithmetic{
public static void main(String[] args){
int[] arrays = {10, 21, 8, 54, 18};
//int maxVaule = Arithmetic.getMaxVaule(arrays);
//Arithmetic.sort(arrays);
//System.out.println("该数组排序:" + Arrays.toString(arrays));
//char[] arrays = {'我','真','的','喜','欢','你'};
//Arithmetic.swap(arrays);
Arithmetic.sort2(arrays);
int index = Arithmetic.binSearch(arrays, 99);
System.out.println(Arrays.toString(arrays));
System.out.println("寻找的目标在:" + index);
}
/**
* 求最大值
*/
public static int getMaxVaule(int[] arrays){
int maxNum = arrays[0];
for(int i = 1; i < arrays.length; i++){
if(maxNum < arrays[i]){
maxNum = arrays[i];
}
}
return maxNum;
}
/**
* 冒泡排序
*/
public static void sort2(int[] arrays){
for(int i = 0; i < arrays.length; i++){
for(int n = 0; n < arrays.length - i - 1; n++){
if(arrays[n] > arrays[ n + 1 ]){
int temp = arrays[n];
arrays[n] = arrays[n + 1];
arrays[n + 1] = temp;
}
}
}
}
/**
* 交换排序
*/
public static void sort(int[] arrays){
for(int i = 0; i < arrays.length - 1; i++){
for(int n = i; n < arrays.length; n++){
if(arrays[i] > arrays[n]){
int temp = arrays[i];
arrays[i] = arrays[n];
arrays[n] = temp;
}
}
}
}
/**
* 数组反转
*/
public static void swap(char[] arrays){
int length = arrays.length / 2;
for(int i = 0, n = arrays.length - 1; i < length; i++,n--){
char temp = arrays[i];
arrays[i] = arrays[n];
arrays[n] = temp;
}
}
/**
* 二分查找法
*/
public static int binSearch(int[] arrays, int target){
int min = 0, max = arrays.length-1;
while(min < max){
int mid = (min + max) / 2;
if(arrays[mid] > target){
max = mid - 1;
}else if(arrays[mid] < target){
min = mid + 1;
}else if(arrays[mid] == target){
return mid;
}
}
return -1;
}
}
1.本篇文章主要写了几个排序和查找算法