簡介
選擇法(Takhayyur)
20世紀50年代後,中東地區的阿拉伯伊斯蘭國家在修訂教法過程中多採取這種方法,旨在教法淵源的範圍內修訂律法,而儘量避免直接引進外來法的原則。主要有兩種情況:或在某一教法學派內部加以選擇,或突破界限在 遜尼派四大教法學派之間加以廣泛的選擇取捨,甚至以歷史上默默無聞的教法學家的意見為據。例如,1957年突尼西亞在制定《私人身份法》時,在涉及余產處分問題上就擯棄了馬立克教法學派過時的原則,而選擇了哈乃斐教法學派的原則。該法規定:一筆遺產在份額繼承人中分配後仍有盈餘,而又沒有父系繼承人時,則應歸還份額繼承人中按比例分配。如按流行於北非的馬立克派傳統,余產應收歸國有。
計算機排序的一種
所謂排序是,就是整理表中的記錄,使之按關鍵字遞增(或遞減)次序排列起來。常用的排序算法有:冒泡法、選擇法、插入法、快速排序法、堆排序法、歸併排序法等。
選擇法舉例
#include <stdio.h>
#define N 10
main()
{
int a[N],i,j,temp;
printf("Input 10 numbers:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++) {
for(j=i+1;j<=N-1;j++)
if(a[i]<a[j])
{ temp=a[i];
a[i]=a[j];
a[j]=temp;}
}
printf("The sorted numbers:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
}
這個算法可以進一步改進
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<=N-1;j++)
if(a[j]>a[k]) k=j;
if(i!=k)
{ temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
改進後的選擇法排序,工作量明顯減少。