当前位置: 移动技术网 > IT编程>开发语言>Java > 用java实现选择排序法和二分查找

用java实现选择排序法和二分查找

2020年10月25日  | 移动技术网IT编程  | 我要评论
选择排序法是一种简单直接的排序算法,时间复杂度为O(n²) 。选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换。动画演示:代码:int a[]=new int[n];for(int i=0;i<n;i++){

选择排序法是一种简单直接的排序算法,时间复杂度为O(n²) 。

选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换。

动画演示:
选择排序原理动画演示

代码:

int a[]=new int[n];
for(int i=0;i<n;i++)
{
	for(int j=i+1;j<n;j++)
	{
		if(a[i]>a[j])//较小的元素放左边
		{
			int t=a[i];a[i]=a[j];a[j]=t;
		}
	}
}


二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。

	int low,high,mid;
	System.out.println("请输入要查找的整数:");
	int find=input.nextInt();
	low=0;
	high=9;     //low和high用于追踪要在其中查找的列表部分
	int text=0;    //text用于测试列表中是否存在查找的元素
	while(low<=high)   //只要范围没有缩小到只包含一个元素
	{
		mid=(low+high)/2;   //检查中间的元素
		if(find==a[mid])    //找到了元素
		{
			System.out.println("查找的数为:a["+mid+"]: "+a[mid]);
			text=1;
			break;
		}
		if(find>a[mid])     //猜的数字大了
		{
			low=mid+1;
		}
		else                //猜的数字小了
		{
			high=mid-1;
		}
	}
	if(text==0)    //text的值未变
		System.out.println("未找到该整数。");

本文地址:https://blog.csdn.net/lanyanxuan/article/details/109138289

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网