运用了快排的思想
注意数组是从1开始的
int find_num_i(int *a,int st,int en,int i)
{
int poi;
if (st>=en) return a[st];
poi=st;
for (int k=st+1;k<=en;k++)
if (a[k]<a[poi])
{
Swap(a[poi+1],a[k]);
Swap(a[poi],a[poi+1]);
poi++;
}
if (poi==i) return a[poi];
if (poi<i) return find_num_i(a,poi+1,en,i);
else return find_num_i(a,st,poi-1,i);
}
void Swap(int &a,int &b)
{
int exc;
exc=a;a=b;b=exc;
return;
}
本文介绍了一个基于快速排序思想的查找算法实现。该算法通过递归地将数组分为两部分,并定位目标元素的位置。代码中详细展示了如何进行元素交换以及递归调用的过程。
1856

被折叠的 条评论
为什么被折叠?



