用java实现选择排序法和二分查找
程序员文章站
2022-03-27 20:12:08
选择排序法是一种简单直接的排序算法,时间复杂度为O(n²) 。选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换。动画演示:代码:int a[]=new int[n];for(int i=0;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
上一篇: 笔记本电源适配器隔离保护电路故障详解
下一篇: 进击快消:苏宁祭出重拳