顺序统计

查找最小值
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.cpp
 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;    //循环未排序中找出最小值下标 t
   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)






猜你喜欢

转载自blog.csdn.net/a096030098/article/details/44536393