冒泡排序和二分查找
2015-05-15 00:37
260 查看
/**
*
*/
package com.test.sort;
/**
* @author Administrator
*
*/
/**
*冒泡排序
*
*/
public class Bubbling
{
public static int[] Bubbling(int[] arr)
{
//int[] arr = {12,45,11,22,2,5,27,3,99,0};
for(int i = 0;i<arr.length;i++)
{
for(int j=0;j<arr.length-i-1;j++)
{
int temp;
if(arr[j]>arr[j+1])
{
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
}
--------------------------------------------------------------分隔符----------------------------------------------------------
二分查找以中间的数字大小儿子比较标准,假设是从小到大,中间数字大于所求数字,那肯定在左边,相同的方法定位左边字表的中间值在比较,相反则亦然
/**
*
*/
package com.test.sort;
/**
* @author Administrator
*二分查找
*/
public class BinarySearch
{
public static int binarySearch(int[] array, int value)
{
int low = 0;
int high = array.length-1;
int middle = 0;
while(low <= high)
{
middle = (low+high)/2;
if(array[middle] == value)
{
return middle;
}
if(value < array[middle])
{
high = middle - 1;
}
if(value > array[middle])
{
low = middle + 1;
}
}
return -1;
}
//递归
public static int binarySearch1(int[] array, int value,int low,int right)
{
int center = (low+right)/2;
if(array[center] == value)
{
System.out.println("找到了");
return center;
}
if(array[center] > value)
{
return binarySearch1(array,value,low,right -1);
}
if(array[center] < value)
{
return binarySearch1(array,value,center+1,right);
}
return -1;
}
public static void main(String[] args)
{
int[] array = {7,3,9,5,6,8,1};
int[] array1 = Bubbling.Bubbling(array);
//1356789
int index = binarySearch(array1,5);
System.out.println("所在的位置:"+index);
}
}
*
*/
package com.test.sort;
/**
* @author Administrator
*
*/
/**
*冒泡排序
*
*/
public class Bubbling
{
public static int[] Bubbling(int[] arr)
{
//int[] arr = {12,45,11,22,2,5,27,3,99,0};
for(int i = 0;i<arr.length;i++)
{
for(int j=0;j<arr.length-i-1;j++)
{
int temp;
if(arr[j]>arr[j+1])
{
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
}
--------------------------------------------------------------分隔符----------------------------------------------------------
二分查找以中间的数字大小儿子比较标准,假设是从小到大,中间数字大于所求数字,那肯定在左边,相同的方法定位左边字表的中间值在比较,相反则亦然
/**
*
*/
package com.test.sort;
/**
* @author Administrator
*二分查找
*/
public class BinarySearch
{
public static int binarySearch(int[] array, int value)
{
int low = 0;
int high = array.length-1;
int middle = 0;
while(low <= high)
{
middle = (low+high)/2;
if(array[middle] == value)
{
return middle;
}
if(value < array[middle])
{
high = middle - 1;
}
if(value > array[middle])
{
low = middle + 1;
}
}
return -1;
}
//递归
public static int binarySearch1(int[] array, int value,int low,int right)
{
int center = (low+right)/2;
if(array[center] == value)
{
System.out.println("找到了");
return center;
}
if(array[center] > value)
{
return binarySearch1(array,value,low,right -1);
}
if(array[center] < value)
{
return binarySearch1(array,value,center+1,right);
}
return -1;
}
public static void main(String[] args)
{
int[] array = {7,3,9,5,6,8,1};
int[] array1 = Bubbling.Bubbling(array);
//1356789
int index = binarySearch(array1,5);
System.out.println("所在的位置:"+index);
}
}
相关文章推荐
- java的String类和StringBuffer的应用 冒泡排序 选择元素 二分查找
- 动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有
- C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
- Day15 递归进阶和二分查找以及冒泡排序
- C语言 冒泡排序和二分查找
- 巩固C语言(四)-----冒泡排序 & 二分查找 & 单次循环对二维数组赋初值
- Java数组遍历、求最大值、选择排序、冒泡排序、二分查找
- C语言:编写查找和排序函数(二分查找,冒泡排序,选择排序法,插入排序)
- 经典算法:二分查找、插入排序、选择排序、冒泡排序
- java实现的选择排序、冒泡排序、二分查找
- 【C/C++】冒泡排序与二分查找
- 冒泡排序,改进型冒泡排序,插入排序,二分查找
- java 冒泡排序二分查找
- 冒泡排序、二分查找、单向链表操作
- C语言:顺序,二分查找,冒泡排序实践项目
- C 语言 排序算法,冒泡排序,选择排序,插入排序,二分查找
- (一)排序简介:直接插入排序、冒泡排序、二分查找排序
- 经典算法:二分查找、插入排序、选择排序、冒泡排序
- js冒泡排序和二分查找
- 经典算法:二分查找、插入排序、选择排序、冒泡排序