java的 最大值 选择排序 冒泡排序 二分查找
来源:互联网 发布:易观国际数据 编辑:程序博客网 时间:2024/06/05 07:00
/**
以下对java的 最大值 选择排序 冒泡排序 二分查找做了一下总结
*/
public class Test9{
public static void main(String[] args){
int[] arr={12,5,17,8,55,41,9};
int index=binarySearch(arr,8);
System.out.println("索引值为:"+index);
System.out.println("最大值为:"+getMax(arr));
System.out.println("选择排序为:");
selectSort(arr);
System.out.println("\n冒泡排序为:");
bubbleSort(arr);
}
/**
求一个数组中的最大值
*/
public static int getMax(int[] arr){
int max=arr[0];
for(int i=1;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
}
}
return max;
}
/**
java 排序算法思路:
选择排序:使用一个元素与其他元素挨个比较,符合条件交换位置
*/
public static void selectSort(int[] arr){
for(int j=0;j<arr.length-1;j++ ){
for(int i=j+1;i<arr.length;i++){
if(arr[i]>arr[j]){
//交换位置
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
//遍历效果
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+",");
}
}
/**
冒泡排序:相邻的两个元素挨个比较
大的元素放在右边,小的放在左边
*/
public static void bubbleSort(int[] arr){
//把最大值放在最后位置
for(int j=0;j<arr.length-1;j++){//控制轮数
for(int i=0;i<arr.length-1-j;i++){
//相邻元素比较
if(arr[i]>arr[i+1]){
int tem=arr[i];
arr[i]=arr[i+1];
arr[i+1]=tem;
}
}
}
//遍历效果
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+",");
}
}
/**
二分查找思路:
定义三个变量分别记录要查找的元素的范围最大索引值,最小
索引值,中间的索引值,每次都是用中间索引值的元素与目标元素相比
如果不是就缩小范围 注意:要先排序
*/
//查找指定元素索引值
public static int binarySearch(int[] arr,int target){
/**
定义三个变量分别记录最大,最小,中间的查找范围索引值
*/
int max=arr.length-1;
int min=0;
int mid=(min+max)/2;
while(true){
if(target>arr[mid]){
min=mid+1;
}else if(target<arr[mid]){
max=mid-1;
}else{//找到元素
return mid;
}
/**
重新计算中间的索引值
*/
mid=(min+max)/2;
//没有找到的情况
if(max<min){
return -1;
}
}
}
}
阅读全文
0 0
- java的 最大值 选择排序 冒泡排序 二分查找
- Java 冒泡排序,选择排序,二分查找
- java实现的选择排序、冒泡排序、二分查找
- Java数组遍历、求最大值、选择排序、冒泡排序、二分查找
- Java--冒泡、选择排序,二分查找
- Java-冒泡,选择排序,二分查找算法
- java的冒泡排序、选择排序与插入排序与二分查找
- 冒泡排序、选择排序、二分查找法
- 选择排序 冒泡排序 二分查找
- 冒泡排序,选择排序,二分查找小结
- Week02_day01 选择排序 冒泡排序 二分查找
- 选择排序,冒泡排序及二分查找的代码实现
- java 冒泡排序二分查找
- 冒泡排序,选择排序,直接插入排序,二分查找排序
- 插入,冒泡,选择,快速排序,二分查找(Java版)
- 插入,冒泡,选择,快速排序,二分查找(Java版)
- Java冒泡,快速,插入,选择排序^_^+二分算法查找
- java冒泡,选择排序及折半(二分)查找
- Velocity入门教程一
- 常用正则表达式—邮箱(Email)
- 跟我一起用C++实现Java Thread库(一)
- xml-使用dom去遍历xml文件和获取指定节点信息
- GameMaker: Studio 学习笔记(三)生命 文字 时间轴
- java的 最大值 选择排序 冒泡排序 二分查找
- WebView滚动到底部
- lua 将函数作为参数传递
- hdu 6086 -- Rikka with String(AC自动机 + 状压DP)
- eclipse中一个项目引用另一个项目的方法
- Node Https配置
- Angularjs中单选按钮用法总结
- Android 最全面的适配方案
- java.lang.IllegalArgumentExceptio:ik的报错