用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

关于数组的相关操作(如数组的求最大值,最小值,选择排序 二分法查找)

2013-04-03 作者: 海大软件1102班举报

[java]代码库

/*这个类是关于数组的相关操作,如数组的求最大值,最小值,选择排序  二分法查找等 */
public class ArrayTools {

	public int max(int[] array) {
		int max = Integer.MIN_VALUE;

		for (int i = 0; i < array.length; i++) {
			if (array[i] > max) {
				max = array[i];
			}
		}

		return max;
	}

	public int min(int[] array) {
		int min = Integer.MAX_VALUE;

		for (int i = 0; i < array.length; i++) {
			if (array[i] < min) {
				min = array[i];
			}
		}

		return min;
	}

	/**
	 * 选择排序
	 * 
	 * @param array
	 */
	public void selectSort(int[] array) {
		int minIndex;// 最小索引
		int temp;

		for (int i = 0; i < array.length; i++) {
			minIndex = i;// 假设每轮第一个元素为最小元素
			// 从假设的最小元素的下一元素开始循环
			for (int j = i + 1; j < array.length; j++) {
				// 如果发现有比当前array[smallIndex]更小元素,则记下该元素的索引于smallIndex中
				if ((array[j] < array[minIndex])) {
					minIndex = j;
				}
			}

			// 先前只是记录最小元素索引,当最小元素索引确定后,再与每轮的第一个元素交换
			temp = array[i];
			array[i] = array[minIndex];
			array[minIndex] = temp;

		}
	}

	/**
	 * 二分法查找,前提是已排序
	 * 
	 * @param array
	 * @param des
	 * @return
	 */
	public static int binarySearch(int[] array, int des) {

		int low = 0;
		int high = array.length - 1;
		while (low <= high) {
			int middle = (low + high) / 2;
			if (des == array[middle]) {
				return middle;
			} else if (des < array[middle]) {
				high = middle - 1;
			} else {
				low = middle + 1;
			}
		}
		return -1;
	}

	/**
	 * 测试
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		int[] array = { 5, 9, 1, 0, 4, 2, -6, 3, 8, 0, 76, -7, 7, 11, 12, 19,
				8, 9, 10, 28, 53 };
		ArrayTools arrayTools = new ArrayTools();

		System.out.println("原数组:");
		for (int i = 0; i < array.length; i++) {
			System.out.print(array[i] + " ");
		}

		System.out.println();
		System.out.println("选择排序结果:");
		arrayTools.selectSort(array);
		for (int i = 0; i < array.length; i++) {
			System.out.print(array[i] + " ");
		}
		System.out.println();
		System.out.println("二分法查找 9 的位置:" + arrayTools.binarySearch(array, 9));

		System.out.println("最大值:" + arrayTools.max(array));
		System.out.println("最小值:" + arrayTools.min(array));

	}
}

[代码运行效果截图]


关于数组的相关操作(如数组的求最大值,最小值,选择排序  二分法查找)


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...