/**
* 字符串進行排序
* @param list
* @param start
* @param end
* @param targen
* @return
*/
public static int seek(List<Map<String, Object>> list,int start,int end,String targen) {
int index = (start + end) / 2;
// 判斷須要 查找的值 在不在數組裏面
if(toAscii(targen)>toAscii(list.get(end).get("key").toString())
||toAscii(targen)<toAscii(list.get(start).get("key").toString())
||start>end) {
return -1; //不在返回 -1 ;
}
if(toAscii(targen)>toAscii(list.get(index).get("key").toString())) {
return seek(list,index + 1,end,targen);
}else if(toAscii(targen)<toAscii(list.get(index).get("key").toString())){
return seek(list,start,index-1,targen);
}else {
return index;
}
}數組
/**
* 將字符串轉化成 ascii 碼
* @param targen 須要轉化的字符串
* @return
*/
public static int toAscii(String targen) {
char[] chars = targen.toCharArray();
String asiic = "";
for(char as : chars) {
asiic += (byte)as +"";
}
return Integer.parseInt(asiic);
}.net
//調用示例排序
public static void main(String[] args) {
int a = (int)'a';
System.out.println(a);
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
Map<String, Object> map1 = new HashMap<String,Object>();
map1.put("key", "abc");
list.add(map1);
Map<String, Object> map2 = new HashMap<String,Object>();
map2.put("key", "abd");
list.add(map2);
Map<String, Object> map3 = new HashMap<String,Object>();
map3.put("key", "abf");
list.add(map3);
Map<String, Object> map4 = new HashMap<String,Object>();
map4.put("key", "abh");
list.add(map4);
Map<String, Object> map5 = new HashMap<String,Object>();
map5.put("key", "abg");
list.add(map5);
System.out.println(seek(list,0,list.size()-1,"abf"));
System.out.println(list.get(seek(list,0,list.size()-1,"abf")).get("key").toString());
} ci