• 注册
当前位置:1313e > 默认分类 >正文

排序及二分查找

为什么80%的码农都做不了架构师?>>>   hot3.png

/*** @className:TwoDivide.java* @classDescription:排序和二分查找* @author:jiangmianyue* @createTime:2011-6-15*/public class TwoDivide {/*** 冒泡排序* * @author jiangmianyue* @createTime 2011-6-15* @param args*/public static void main(String[] args) {int[] aa = new int[] { 1, 8, 18, 38, 98, 218, 982, 1189 };// 冒泡排序System.out.println("排序前");for (int i = 0; i < aa.length - 1; i++) {System.out.println(aa[i]);}for (int i = 1; i < aa.length; i++) {for (int j = 0; j < aa.length; j++) {if (aa[i] < aa[j]) {aa[i] = aa[i] + aa[j];aa[j] = aa[i] - aa[j];aa[i] = aa[i] - aa[j];}}}System.out.println("排序后");for (int i = 0; i < aa.length; i++) {System.out.println(aa[i]);}System.out.println("第二种排序");for(int i = 0; i < aa.length - 1; i++){for(int j = 0; j < aa.length - i -1; j ++){if (aa[j] < aa[j + 1]){aa[j] = aa[j] + aa[j + 1];aa[j + 1] = aa[j] - aa[j + 1];aa[j] = aa[j] - aa[j + 1];}}}for (int i = 0; i < aa.length; i++) {System.out.println(aa[i]);}System.out.println(doOrder(aa, 100));}/*** 二分查找* * @author jiangmianyue* @createTime 2011-6-15* @param aa*            数组* @param a*            要查找的值* @return 返回在数据中的位置*/public static int doOrder(int[] aa, int a) {int low = 0; // 数组的最小值小标int hight = aa.length - 1; // 数组的最大值下标// while条件是当low小于等于hight时执行while (low <= hight) {// 取数组的中间下标int middle = (hight + low) / 2;if (a < aa[middle]) {// 当要查找的值小于中间值的时候把中间值减1赋值给最大值hight = middle - 1;} else if (a > aa[middle]) {// 当要查找的值大于中间值的时候把中间值加1赋值给最小值low = middle + 1;} else {// 最后得出的中间值为要的下标值return middle;}}return -1;}
}

 

 

转载于:https://my.oschina.net/zaxb/blog/1544134

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录