⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 寻找第i个最小的数.cpp

📁 数值分析中常用的几种算法的实现
💻 CPP
字号:
#include<stdio.h>
#define Max 30001
int num[Max];
int find(int p,int r,int i)
{
	int x,temp,start,end,k;
	if(p==r)
		return num[p];
	start=p;
	end=r;
	x=num[p];
	while(p<r)
	{
		while(num[r]>x) r--;
		while(num[p]<x) p++;
		if(p<r)
		{
			if(num[r]!=num[p])
			{
				temp=num[r];
				num[r]=num[p];
				num[p]=temp;
			}
			else
			{
				r--;
				p++;
			}
		}
	}
	k=p-start+1;
	if(i<k)
		return find(start,r,i);
	else
		return find(r+1,end,i-k);
}
int main()
{
	int i,n,d;
	for(i=30000;i>=0;i--)
		num[30000-i]=i;
	while(1)
	{
		scanf("%d",&n);
		if(n==0)
			return 0;
		d=find(0,Max-1,n);
		printf("%d\n",d);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -