冒泡排序 选择排序 折半查找
2016-04-13 12:57
309 查看
package Test; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Scanner; public class Test2 { public static void main(String[] args){ int[] a=new int[]{2,5,1,4,8,6}; print(a); Arrays.sort(a);//java提供的排序函数 print(a); bulltSort(a); print(a); int[] b=new int[]{2,5,1,4,8,6}; selectSort(b); print(b); int index; index=halfSearch(a, 7); System.out.println("index="+index); index=halfSearch(b, 4); System.out.println("index="+index); } /** * 冒泡排序:相邻元素比较,交换,选出最大或最小值 * @param arr */ public static void bulltSort(int []arr){ for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){ swap(arr,j,j+1); } } } } /** * 选择排序:从第一个元素开始与之后元素挨个比较,选择最大或最小值 * @param arr */ public static void selectSort(int []arr){ for(int i=0;i<arr.length-1;i++){ for(int j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ swap(arr,i,j); } } } } /** * 数组两个元素进行交换 * * @param arr * @param a * @param b */ public static void swap(int []arr,int a,int b){ int temp=arr[a]; arr[a]=arr[b]; arr[b]=temp; } /** * 折半查找 * @param arr * @param key * @return */ public static int halfSearch(int []arr,int key){ int min=0; int max=arr.length; int mid=(max+min)>>1; while(min<max){ if(arr[mid]<key){ min=mid+1; mid=(max+min)>>1; } if(arr[mid]>key){ max=mid-1; mid=(max+min)>>1; } if(arr[mid]==key){ return mid; } } return -1; } /** * 打印数组 * @param arr */ public static void print(int []arr){ for(int i=0;i<arr.length;i++){ if(i!=arr.length-1){ System.out.print(arr[i]+" "); }else{ System.out.println(arr[i]+""); } } } }
相关文章推荐
- 在命令行用 sort 进行排序
- 文件遍历排序函数
- C#选择排序法实例分析
- Redis中实现查找某个值的范围
- C#插入法排序算法实例分析
- C#实现Datatable排序的方法
- 批量文件查找替换功能的vbs脚本
- SQLSERVER的排序问题结果不是想要的
- Windows Powershell排序和分组管道结果
- C#通过IComparable实现ListT.sort()排序
- WinForm实现按名称递归查找控件的方法
- 一个用vbs查找硬盘所有分区中的指定程序的代码
- C#选择法排序实例分析
- SQL学习笔记四 聚合函数、排序方法
- C#对list列表进行随机排序的方法
- jQuery拖动元素并对元素进行重新排序
- 将MySQL查询结果按值排序的简要教程
- 浅析Node.js查找字符串功能
- 一根网线内的8根线哪4根是传输数据的,哪四根是防干扰的
- C语言实现选择排序、冒泡排序和快速排序的代码示例