順序統計

查找最小值
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)






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章