以线性时间求最小最大元素的选择问题的时间是线性的。下边的这个方法我们用到的是二分制的方法,它和前边我提到的快速排序的思想是差不多的,但是不同的是,此算法的思想虽然也是递归,但是我们只处理一半。。从而减少了我们所需要的时间。。关于代码,我还是直接贴出来了,希望可以深入体会。。
C语言:
Codee#12936
//题目:寻找第几小元素
//by 笨牛dashan
//完成时间: 2010.8待修改已完成。
#include <stdio.h>
#define MAX 10
int patition( int * a , int p , int r) //快速排序的部分,不做过多的解释
{
int x;
x = a [ r ];
int i =p - 1;
int j =p;
int temp;
for(;
//by 笨牛dashan
//完成时间: 2010.8待修改已完成。
#include <stdio.h>
#define MAX 10
int patition( int * a , int p , int r) //快速排序的部分,不做过多的解释
{
int x;
x = a [ r ];
int i =p - 1;
int j =p;
int temp;
for(;