排序算法
影響算法性能的幾個因素:時間性能,輔助空間,算法的複雜度性能
冒泡排序spa
1 void BubbleSort(int a[],int n){ 2 int i,j,flog=1,k; 3 for(i=0;i<n-1 && flog;i++){ 4 flog=0; 5 for(j=0;j<n-i-1;j++){ 6 if(a[j]>a[j+1]){ 7 flog=1; 8 k=a[j]; 9 a[j]=a[j+1]; 10 a[j+1]=k; 11 } 12 } 13 } 14 }
選擇排序code
1 void SelectSort(int a[],int n){ 2 int i,j,min,k; 3 for(i=0;i<n-1;i++){ 4 min=i; 5 for(j=i+1;j<n;j++) 6 if(a[min]>a[j]) 7 min=j; 8 k=a[min]; 9 a[min]=a[i]; 10 a[i]=k; 11 } 12 }
直接插入排序blog
1 void InsertSort(int a[],int n){ 2 int i,j,temp; 3 for(i=1;i<n;i++){ 4 if(a[i]<a[i-1]){ 5 temp=a[i]; 6 //注:這裏要手動檢測越界問題 7 for(j=i-1;a[j]>temp && j>=0;j--) 8 a[j+1]=a[j]; 9 a[j+1]=temp; 10 } 11 } 12 }