Java SE 学习笔记(五)

本文介绍并实现了几种基本的排序算法(包括冒泡排序和交换排序)及二分查找算法。通过具体的Java代码示例展示了如何对整型数组进行排序,并使用二分查找法高效地搜索目标值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.util.Arrays;

/**
 * 算法类 : Arithmetic
 * @author Mr.Wang
 *
 */
public class Arithmetic{
	public static void main(String[] args){
		int[] arrays = {10, 21, 8, 54, 18};

		//int maxVaule = Arithmetic.getMaxVaule(arrays);
		//Arithmetic.sort(arrays);

		//System.out.println("该数组排序:" + Arrays.toString(arrays));
		
		//char[] arrays = {'我','真','的','喜','欢','你'};

		//Arithmetic.swap(arrays);

		Arithmetic.sort2(arrays);

		int index = Arithmetic.binSearch(arrays, 99);

		System.out.println(Arrays.toString(arrays));
		System.out.println("寻找的目标在:" + index);
		

	}

	/**
	 * 求最大值
	 */
	public static int getMaxVaule(int[] arrays){
		int maxNum = arrays[0];
		for(int i = 1; i < arrays.length; i++){
			if(maxNum < arrays[i]){
				maxNum = arrays[i];
			}
		}
		return maxNum;
	}
	
	/**
	 * 冒泡排序
	 */
	public static void sort2(int[] arrays){
		for(int i = 0; i < arrays.length; i++){

			for(int n = 0; n < arrays.length - i - 1; n++){

				if(arrays[n] > arrays[ n + 1 ]){
					int temp = arrays[n];
					arrays[n] = arrays[n + 1];
					arrays[n + 1] = temp;
				}
			}
		}

	}

	/**
	 * 交换排序
	 */
	public static void sort(int[] arrays){
		for(int i = 0; i < arrays.length - 1; i++){
			for(int n = i; n < arrays.length; n++){
				if(arrays[i] > arrays[n]){
					int temp = arrays[i];
					arrays[i] = arrays[n];
					arrays[n] = temp;
				}
			}
		}
	}
	
	/**
	 * 数组反转
	 */
	public static void swap(char[] arrays){
		int length = arrays.length / 2;
		for(int i = 0, n =  arrays.length - 1; i < length; i++,n--){
			char temp = arrays[i];
			arrays[i] = arrays[n];
			arrays[n] = temp;
		}
	}


	/**
	 * 二分查找法
	 */
	public static int binSearch(int[] arrays, int target){
		int min = 0, max = arrays.length-1;
		while(min < max){
			int mid = (min + max) / 2;
			if(arrays[mid] > target){
				max = mid - 1;
			}else if(arrays[mid] < target){
				min = mid + 1;
			}else if(arrays[mid] == target){
				return mid;
			}
		}
		return -1;
	}
}
1.本篇文章主要写了几个排序和查找算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值