黑马程序员--选择排序、冒泡排序、二分法查找
2014-08-06 20:51
267 查看
[b]---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流!
----------------------[/b]
选择排序
遍历数组里的每个数字,与后面的每个数字比较大小,如果符合条件则进行置换。
[java] view
plaincopy
public static void selectSort(int[] arr)
//由小到大排序
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=x+1; y<arr.length; y++)
//只需要与后面的比较
{
if(arr[x]>arr[y])
{
4000
int temp = arr[x];
//暂时变量以便转换
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
冒泡排序
相邻的两个元素相互比较,比较规则自定义(假设由小到大排序),符合条件,交换位置,不符合条件,不用交换
[java] view
plaincopy
public static void bubbleSort(int[] arr)
//由小到大排序
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=0; y<arr.length-x-1; y++)
//遍历一次后最大的元素到达最右边,所以下次不用参加比较,所以-x
{
if(arr[y]>arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
二分查找
使用二分查找的数组必须是有序的数组
[java] view
plaincopy
public static int binarySeach(int[] arr,int key)
//返回所要查找元素的角标,若元素不存在,返回-1
{
int min,mid,max;
min = 0;
max = arr.length-1;
mid = (max+min)/2;
while(arr[mid]!=key)
{
if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
if(min>max)
return -1; //元素不存在
mid = (max+min)/2;
}
return mid;
}
[b][b][b]---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流!
----------------------[/b]
[/b][/b]
----------------------[/b]
选择排序
遍历数组里的每个数字,与后面的每个数字比较大小,如果符合条件则进行置换。
[java] view
plaincopy
public static void selectSort(int[] arr)
//由小到大排序
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=x+1; y<arr.length; y++)
//只需要与后面的比较
{
if(arr[x]>arr[y])
{
4000
int temp = arr[x];
//暂时变量以便转换
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
冒泡排序
相邻的两个元素相互比较,比较规则自定义(假设由小到大排序),符合条件,交换位置,不符合条件,不用交换
[java] view
plaincopy
public static void bubbleSort(int[] arr)
//由小到大排序
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=0; y<arr.length-x-1; y++)
//遍历一次后最大的元素到达最右边,所以下次不用参加比较,所以-x
{
if(arr[y]>arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
二分查找
使用二分查找的数组必须是有序的数组
[java] view
plaincopy
public static int binarySeach(int[] arr,int key)
//返回所要查找元素的角标,若元素不存在,返回-1
{
int min,mid,max;
min = 0;
max = arr.length-1;
mid = (max+min)/2;
while(arr[mid]!=key)
{
if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
if(min>max)
return -1; //元素不存在
mid = (max+min)/2;
}
return mid;
}
[b][b][b]---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流!
----------------------[/b]
[/b][/b]
相关文章推荐
- 黑马程序员————冒泡排序、选择排序、二分法查找
- 一维数组中的一些常用方法(打印数组、逆序、选择排序、冒泡排序、二分法查找、普通查找)
- C语言拓展——选择排序、冒泡排序、二分法查找
- java选择排序,冒泡排序分析,附带二分法查找
- 笔试经常遇到的选择排序、冒泡排序和二分法查找
- java中选择排序,冒泡排序和二分法查找学习记录
- 冒泡排序、直接选择排序、二分法查找
- 黑马程序员——冒泡排序、选择排序、二分查找的实例运用分析
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- 黑马程序员——数组练习(冒泡排序,选择排序)
- 黑马程序员---冒泡排序和选择排序
- 黑马程序员-数组排序-选择排序与冒泡排序
- 黑马程序员—数组最大值、最小值、选择排序、冒泡排序
- Java数组遍历、求最大值、选择排序、冒泡排序、二分查找
- 黑马程序员java学习— 数组的选择排序和冒泡排序
- 黑马程序员_冒泡排序与选择排序代码体现
- 黑马程序员——c语言基础:冒泡排序、选择排序和折半查找
- 经典算法:二分查找、插入排序、选择排序、冒泡排序
- 经典算法:二分查找、插入排序、选择排序、冒泡排序
- 黑马程序员-冒泡排序、直接排序、二分法