浏览 823 次
|
锁定老贴子 主题:数字从小到大排序,二分法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-08-31 关键字: java基础,数字排序,二分法
package com.kingo;
public class Sort { //从小到大排序 public static int[] sort(int[] arr) { for (int i = 0; i < arr.length; i++) { for (int j = i; j < arr.length; j++) { if (arr[i] > arr[j]) { int x = arr[i]; arr[i] = arr[j]; arr[j] = x; } } } return arr; } public static void main(String[] args) { int beforeSort[] = { 13, 21, 45, 65, 765, 33, 88, 44, 22, 5, 25 }; int afterSort[] = sort(beforeSort); //打印出排序后的数字 for (int i = 0; i < afterSort.length; i++) { System.out.println(i + ":" + afterSort[i]); } System.out.println("er fen 33:" + erfen(33, afterSort)); } private static int erfen(int i, int[] arr) { return fenfen(i,0,arr.length-1,arr); } //二分法,寻找数字做在数组的位置 private static int fenfen(int dst, int offset, int end, int[] arr) { if(offset==end){ return arr[offset]==dst?offset:-1; }else{ if(arr[(offset+end)/2] == dst){ return (offset+end)/2; }else{ return arr[(offset+end)/2]>dst?fenfen(dst,offset,(offset+end)/2,arr):fenfen(dst,(offset+end)/2,end,arr); } } } } 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |


