冒泡排序:

    //降序
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. poj1703 并查集

    输入是2个不在一起的人,可以用一个数组来保存和他矛盾的人.这样find的时候就find(hash[]);就可以: #include<stdio.h> #include<string. ...

  2. 【kAri OJ】621. 廖神的树

    时间限制 3000 ms 内存限制 65536 KB 题目描述 廖神和男神在植树节的时候准备玩一个奇怪的游戏,他们现在有一个被分割成n*n个格子的矩形土地,他们现在准备往这个地里种树,但这个种树游戏必 ...

  3. 【bzoj1486】 HNOI2009—最小圈

    http://www.lydsy.com/JudgeOnline/problem.php?id=1486 (题目链接) 题意 给出一张有向图,规定一个数值u表示图中一个环的权值/环中节点个数.求最小的 ...

  4. 洛谷P2731骑马修栅栏

    题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样懒的人.他讨厌骑马,因此从来不两次经过一个栅栏.你必须编一个 ...

  5. Sublime Text 3 笔记

    Nearly all of the interesting files for users live under the data directory. The data directory is ~ ...

  6. ASP.NET MVC 3 loginUrl自动变成Account/Login,并且发生404错误的解决方法

    http://www.cnblogs.com/think8848/archive/2011/07/08/2100814.html ASP.NET MVC 3 loginUrl自动变成Account/L ...

  7. DOM 元素 属性和方法

    console.dir() namespaceURI: "http://www.w3.org/1999/xhtml" nextElementSibling: null nextSi ...

  8. centos 7 的几点改动

    1.运行级别 旧:/etc/inittab 新:/etc/ststemd/system  例:ln -sf /lib/systemd/system/multi-user.target /etc/sys ...

  9. LVS-DR工作原理

    我们都知道LVS有LVS-DR,LVS-NAT,LVS-TUN三种模式,其中DR模式意为Direct Routing(直接路由).对于LVS-DR,你到底了解到什么程度?本文通过一个实例场景,详细介绍 ...

  10. C# 集合扩展快速排序算法

    /// <summary> /// 对集合进行排序,如 /// List<Person> users=new List<Person>(){.......} /// ...