(Java)数组的选择排序法和二分查找法实现
2013-12-03 11:17
567 查看
1、选择排序法
运行结果:
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、二分查找法
运行结果:
2
-10
6
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】数组的冒泡排序和选择排序(原理+代码实现)
- 在java用二分查找法实现对数组的排序
- java实现数组的冒泡排序、选择排序代码
- Java实现数组排序含冒泡排序、选择排序
- 黑马程序员——Java基础 数组排序的两种实现方法,选择和冒泡
- java类实现数组的五种排序 冒泡排序、选择排序、插入排序、希尔排序、数组排序
- 常见的排序算法(Java实现):冒泡、插入、选择、快速排序
- Java实现排序和类型选择的UI界面
- 请用Java实现冒泡、插入、选择排序中的任意一个排序算法。
- 必须知道的八大种排序算法【java实现】(二) 选择排序,插入排序,希尔算法【详解】
- java实现常见的排序(冒泡、插入、选择、快排)
- Java实现——选择排序、shell排序、合并排序、堆排序
- Java数组排序总结(冒泡,选择,插入,希尔)
- JAVA基础再回首(十一)——数组高级(冒泡排序和选择排序)、Arrays类、基本类型包装类、Integer类
- 选择排序的Java实现
- 【java】选择排序的实现
- Java 数组排序( 4000 冒泡和选择排序) 学习笔记
- [置顶] 实现一个选择排序程序,排序整型数组。