对数组的排序,折半查找,遍历,求取最大值
来源:互联网 发布:魔方模拟软件 编辑:程序博客网 时间:2024/05/11 04:52
ArrayTools.java
//遍历数组,最大值,排序,二分查找
/**
<h1>ArrayTools操作数组的便捷类,包括对数组的排序,折半查找,遍历,求取最大值</h1>
@author 石松
@version 1.0
*/
public class ArrayTools
{
public ArrayTools(){}
/**
binarySearch方法实现了对数组的折半查找法,如果元素存在于数组中,
返回所在位置的角标,不在数组中,返回小于0的数
@param arr ,key 传递数组和需要查找的关键字
@return mid 所在数组的下标
*/
public static int binarySearch(int[] arr ,int key)
{
int min = 0;
int max = arr.length - 1;
int mid = 0;
while(min <= max)
{
mid = (min+max)/2;
if(key > arr[mid])
{
min = mid + 1;
}
else if(key < arr[mid])
{
max = mid - 1;
}
else
{
return mid;
}
}
return -1;
}
/**
select方法,对数组进行排序,次算法是一个经过优化的算法
@param arr 传递整型数组
*/
public static void select(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])
{
swap(arr,x,y);
}
}
}
}
/**
数组换位的专用函数
*/
private static void swap(int[] arr , int x ,int y)
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
/**
getMax方法,获取数组中的最大值
@param arr 传递整型数组
@return max 最大值
*/
public static int getMax(int[] arr)
{
int max = 0;
for(int x = 1 ; x < arr.length ; x++)
{
if(arr[max] < arr[x])
{
max = x;
}
}
return arr[max];
}
/**
printArr方法,将数组打印在控制台上
@param arr 传递整型数组
*/
public static void printArr(int[] arr)
{
System.out.print("[");
for(int x = 0; x < arr.length; x++)
{
if((x!= arr.length-1))
{
System.out.print(arr[x]+",");
}
else
{
System.out.print(arr[x]+"");
}
}
System.out.println("]");
}
}
TestArrayArray.java
package arraytools;
class TestArrayTools
{
public static void main(String[] args)
{
int[] arr ={3,2,56,78,23,723,65};
ArrayTools.printArr(arr);
ArrayTools.select(arr);
ArrayTools.getMax(arr);
ArrayTools.printArr(arr);
/* for (int x =0; x<args.length;x++ )
{
System.out.println(args[x]);
}*/
}
}
结果:
[3,2,56,78,23,723,65]
723
[2,3,23,56,65,78,723]
- 对数组的排序,折半查找,遍历,求取最大值
- 数组的遍历,获取最大值,数组的反转,数组中元素的查找、冒泡排序、选择排序、折半查找法
- (13)数组操作:遍历、输出最大值、冒泡排序、选择排序,java已有的排序方法、折半查找
- 数组冒泡排序,选择排序,逆序,折半查找,遍历方法
- 数组的排序,反转,折半查找,插入
- 数组的冒泡排序和折半查找
- 数组的排序,反转,折半查找,插入
- 数组的折半查找和冒泡排序
- 先对数组排序,在进行折半查找(C++)
- 数组应用之最大值查询、排序算法、折半查找法、数组元素反转
- java-数组静态初始化、选择排序、冒泡排序、数组的折半查找、折半查找练习
- 数组的折半查找
- 子函数求取二维数组每一行的最大值
- Java数组遍历、求最大值、选择排序、冒泡排序、二分查找
- 对数组中的元素进行折半查找
- 有序数组的折半查找
- 字符串数组的折半查找
- [JAVA]数组的折半查找
- 第17周【项目 5-玩日期时间】
- Mac下MySQL卸载方法
- Activiti流程管理学习笔记(三)
- 职业生涯第一步。。。
- 第17周项目3胖子伤不起
- 对数组的排序,折半查找,遍历,求取最大值
- Linux 环境下编译 0.11版本内核 kernel
- Android ant自动打包脚本:自动替换友盟渠道、版本号、包名
- 字节顺序
- 第十七周项目五 玩日期时间-(3)输出这是这一天中的第几秒
- 堆和栈的区别
- 获取网络图片的工具类
- Effective STL 第12条:切勿对STL容器的线程安全性有不切实际的依赖
- 关联规则应用到图书推荐的问题