冒泡排序:

    //降序
public static int[] bubbleSort(int[] array){
for(int i = 0; i < array.length; i++){
int curval = array[i];
for(int j = i - 1; j >= 0; j--){
int temp = array[j];
if(curval > temp){
array[j] = curval;
array[j+1] = temp;
}
}
}
return array;
}
    //升序
public static int[] bubbleSort(int[] array){
for(int i = array.length - 1; i >= 0; i--){
int curval = array[i];
for(int j = i; j < array.length-1; j++){
int tempval = array[j+1];
if(tempval < curval){
array[j+1] = curval;
array[j] = tempval;
}
}
}
return array;
}

二分法查找

//降序
public static int binarySearch (int[] array, int search){
int start = 0;
int end = array.length-1;
int middle = array.length / 2;
for(; start <= end; ){
middle = (start + end) / 2;
int val = array[middle];
if(val == search){
return middle;
}else if(val > search){
start = middle + 1;
}else{
end = middle - 1;
}
} return -1; }
  //升序
public static int binarySearch(int[] array, int search){
int start = 0;
int end = array.length - 1;
int middle = (start + end) / 2;
for(;start <= end;){
middle = (start + end) / 2;
int midval = array[middle];
if(midval > search){
end = middle - 1;
}else if(midval < search){
start = middle + 1;
}else{
return middle;
}
}
return -1;
}

调用

    public static void main(String[] args){
int[] test = new int[]{1,200,164,29,298,188,34,52,287,100,33};
int[] bubres = bubbleSort(test);
for(int i = 0; i < bubres.length; i++){
System.out.println(i + "*************" + bubres[i]);
} System.out.println("-----*****" + binarySearch(bubres, 1));
}

java常用算法的更多相关文章

  1. java 常用算法和一些题目

    选择排序,复杂度O(n²) package com.example.demo; import org.junit.Test; /** * 选择排序 * @author zhzh.yin * */ pu ...

  2. Java常用算法总结

    冒泡排序 从左到右不断交换相邻逆序的元素,在一轮的循环之后,可以让未排序的最大元素上浮到右侧. 在一轮循环中,如果没有发生交换,那么说明数组已经是有序的,此时可以直接退出. 代码如下: public ...

  3. java常用算法笔记

    1.将一个10进制的c转换为n进制 String s=new BigInteger(c+"",10).toString(n); 2. 求一个解退出 System.exit(0): ...

  4. 常用Java排序算法

    常用Java排序算法 冒泡排序 .选择排序.快速排序 package com.javaee.corejava; public class DataSort { public DataSort() { ...

  5. Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...

  6. 使用Java练习算法常用的基本操作

    一.使用Java练习算法常常需要使用控制台的数据输入和输出,下面记录一下基本的使用方法: 基本用法 import java.util.*; public class Main { public sta ...

  7. Java 常用排序算法/程序员必须掌握的 8大排序算法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配 ...

  8. 【Java】-NO.13.Algorithm.1.Java Algorithm.1.001-【Java 常用算法手册 】-

    1.0.0 Summary Tittle:[Java]-NO.13.Algorithm.1.Java Algorithm.1.001-[Java 常用算法手册 ]- Style:Java Series ...

  9. Java常用排序算法及性能测试集合

    测试报告: Array length: 20000 bubbleSort : 573 ms bubbleSortAdvanced : 596 ms bubbleSortAdvanced2 : 583 ...

随机推荐

  1. HNOI2002

    对于当天的营业额,你要找到之前的数和他差的绝对值最小的和.由于这个是不断在插入的,所以用伸展树来维护. http://www.lydsy.com/JudgeOnline/problem.php?id= ...

  2. word中打出希腊字母

    作为一个键盘党,不喜欢用鼠标去选择希腊字母,希望只用键盘就能在word中打出希腊字母. 方法是:按照下图所示对应表,先输入英文字母,然后选中它并按Ctrl+Shift+Q

  3. AU3学习资源

    AU3中文站:http://www.autoitx.com/

  4. SQLServer复制表

    把a的表结构复制到a1表,1=2不复制数据,如果要复制数据,就不要whereselect * into a1 from a where 1=2注意:这种方式不能复制主键.索引等信息如果要全部复制,只能 ...

  5. appium跑demo简单实例讲解

    安装appium,设置 demo.pyfrom appium import webdriver #要装webdriver,方法查看http://www.cnblogs.com/sincoolvip/p ...

  6. HD2444The Accomodation of Students(并查集判断二分图+匹配)

    The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  7. leach-matlab

    http://www.oschina.net/code/snippet_860036_21044 clear;%清除变量 xm=100;%设置区域为100*100 ym=100; sink.x=0.5 ...

  8. bootstrap-select搜索框输入中文

    bootstrap-select 的搜索框无法输入中文,解决办法: 删除源码中这两行代码 that.$lis.not('.hidden, .divider, .dropdown-header').eq ...

  9. Struts2几种传值

    1.url向action传值 url为 http://localhost/txyl/teacher_info?method:teacher_info&teacher_seq=dedafdsf3 ...

  10. linux挂载硬盘失败,报错!

    剛把我的一顆硬碟 ( NTFS ) 接到 Ubuntu 桌機上. 然後要 mount  的時候,出現了下面的訊息: DBus error org.gtk.Private.RemoteVolumeMon ...