(Java)数组的选择排序法和二分查找法实现
来源:互联网 发布:协作办公软件 编辑:程序博客网 时间:2024/06/01 13:02
1、选择排序法
public class SelectionSort {public static void main(String[] args) {double[] numbers={3,2,5,4,6,8,1,7,9,0};//调用SelectionSort选择排序方法SelectionSort(numbers);for(int i=0;i<numbers.length;i++)System.out.print(numbers[i]+" ");System.out.println();char[] chars={'b','a','e','d','c'};//调用java.util.Arrays类中sort排序方法java.util.Arrays.sort(chars);for(int i=0;i<chars.length;i++)System.out.print(chars[i]+" ");}//选择排序法(以升序为例),先找到最大数放在列表最后,再在剩下的数中找到最大数,放到剩下这些数最后,如此进行下去public static void SelectionSort(double[] list){for(int i=list.length-1;i>=1;i--){double currentMax=list[0];int currentMaxIndex=0;for(int j=1;j<=i;j++){if(list[j]>currentMax){currentMax=list[j];currentMaxIndex=j;}}if(currentMaxIndex!=i){list[currentMaxIndex]=list[i];list[i]=currentMax;}}}}
运行结果:
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0
a b c d e
2、二分查找法
public class BinarySearch {public static void main(String[] args) {//已排序的numbers数组int[] numbers={1,2,3,4,5,6,7,8,9};System.out.print(BinarySearch(numbers,3));System.out.println();System.out.print(BinarySearch(numbers,10));System.out.println();//调用java.util.Arrays的binarySearch二分查找方法System.out.print(java.util.Arrays.binarySearch(numbers, 7));}//二分查找法,前提是数组已排序//若关键字在数组中,则返回该数下标,否则返回(-插入点-1),插入点 被定义为将键插入数组的那一点:即第一个大于此键的元素索引public static int BinarySearch(int[] list,int key){int low=0;int high=list.length-1;while(low<=high){int mid=(low+high)/2;if(key<list[mid])high=mid-1;else if(key==list[mid])return mid;else low=mid+1;}return -low-1;}}
运行结果:
2
-10
6
- (Java)数组的选择排序法和二分查找法实现
- java实现的选择排序、冒泡排序、二分查找
- Java中的冒泡排序法and针对数组的普通查找法和二分查找法
- java 对象数组的排序(实现Comparable接口)和二分查找
- C语言:编写查找和排序函数(二分查找,冒泡排序,选择排序法)
- 在java用二分查找法实现对数组的排序
- java选择排序和二分查找
- 【排序】冒泡排序法and针对数组的普通查找法和二分查找法
- 【排序】冒泡排序法and针对数组的普通查找法和二分查找法
- 冒泡排序、选择排序、二分查找法
- 选择排序 快速排序 二分查找法
- 冒泡排序和选择排序二分查找代码实现
- C语言二分查找法(指针和数组实现)
- 使用指针法对数组进行冒泡排序、选择排序、插入排序法、二分查找法
- JAVA实现冒泡排序和二分查找
- JAVA实现冒泡排序和二分查找
- 选择排序,冒泡排序及二分查找的代码实现
- JAVA操作数组----二分查找法,冒泡排序
- VC编程实现 excel插入一行单元格Insert
- python系列学习一 —— 列表
- Python socket serve
- android camera(三):camera V4L2 FIMC
- 威盛L4350CPU 安全引擎Padlock AES RSA 加密算法效率实测
- (Java)数组的选择排序法和二分查找法实现
- EBS客户化迁移SQL
- 如何获取免费比特币?
- C++中堆和栈的完全解析
- C#中Get,Set的详细说明
- 如何改变extjs中gridpanel单元格边框,上下边框
- keychain使用介绍
- Android消息机制(一)
- sql试题--经典三表问题----4----