1 奇偶数排序,奇数在前 偶数后
//数字排序:奇数前 偶数后 。。。交换方法的 第一个 和最后一个比较 奇数放前偶数放后
// 1,2,6,8,9,10,7 src
//[1, 7, 9, 8, 6, 10, 2] out
public static void sort(int arr[],int i,int j){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
public static int[] change(int arr[]){
int i=0,j = arr.length-1;
while (i<j){
while (i<j&&arr[i]%2!=0){
i++;
}//arr i 一直右移,直到遇到 =0,即找到偶数
while (i<j&&arr[j]%2==0){
j--;
}//arr j一直给左 直到遇到 !=0 找到奇数
sort(arr,i,j);//奇数给前 偶数给后 交换
}
return arr;
}
2 二分查找(其他查找方法 后续涉及到算法 会写)
//.二分查找 找到6 返回下标(已经有序 1,3,4,6,8 )
public static int binarySearch(int arr[],int num){
if (arr==null)
return -1;
int i=0,j=arr.length-1;
int tmp= (i+j)/2;
while (i<j){//注 这块不能=0 不然死循环
while (num<arr[tmp]&&i<j){
j=tmp;
tmp = (i+j)/2;
}
while (num>arr[tmp]&&j>i){
i = tmp;
tmp = (i+j)/2;
}
if (arr[tmp] == num)
return tmp;
}
return -1;
}
3 字符数组,替换指定字符
注:这块使用的是StringBuffer和String以及char ,单用char的话,牵扯下标的增加,稍微麻烦 下面的4也是
//3.字符数组 “i am a student.” // 将一个空格 ' '=>2个‘#' // 即i##am##a##student // 1) String str=“i am a student.”; // char[] arr = str.toCharArry();
public static String exchageStr(String str){
StringBuffer stringBuffer = new StringBuffer();
for (int i=0;i<str.length();i++){
if (str.charAt(i) == ' ')
stringBuffer.append("##");
else stringBuffer.append(str.charAt(i));
}
return stringBuffer.toString();
}
4 字符数组,替换指定字符串为n个指定字符串
// 2)一个任意符号(" ")替换成任意个(2个)任意符号(‘#’);
public static String exchageStr(String str,int num,String c){
StringBuffer stringBuffer = new StringBuffer();
for (int i=0;i<num;i++)
stringBuffer.append(c);
String tmp = stringBuffer.toString();
stringBuffer = new StringBuffer();
for (int i=0;i<str.length();i++){
if (str.charAt(i) == ' ')
stringBuffer.append(tmp);
else
stringBuffer.append(str.charAt(i));
}
return stringBuffer.toString();
}