查找最小值
MINIMUM(A)
1. min=A(1)
2. for i=2 to A.length
3. if min>A[i]
4. min=A[i]
5. return min
选择排序代码
#include<iostream>
using namespace std;
void sort(int [],int);
int main(){
int a[],i;
srand(int(time(0)));
for(int i=0;i<10;i++) a[i]=rand()%100;
for(int i=0;i<10;i++) cout<<a[i]<<'\t';
cout<<endl;
sort(a,10);
cout<<"order 1: "<<endl;
for(i=0;i<10;i++) cout<<a[i]<<'\t';
cout<<endl;
}
sort(int x[],int n){
int min,t;
for(int i=0;i<n-1;i++){
t=i;
for(int j=i+1;j<n;j++)
if(x[j]<x[t]) t=j;
if(t!=i){
{min=x[i];x[i]=x[t];x[t]=min;}
}
return;
}
随机选择算法
RANDOMIZED-SELECT(A,p,r,i)
if (p==r)
return A[q]
q=RANDOMON-PATITION(A,p,r)
k=q-p+1
if k==i
return A[q]
else if(i<k) return RANDOMIZED-SELECT(A,p,q-1,i)
else return RANDOMIZED-SELECT(A,q+1,r,i-k)