【C語言程式設計】編寫一個程式解決選擇問題,令k=n/2
阿新 • • 發佈:2019-01-24
初次看到這個題目時有點懵,能力有限,沒法寫出高效版,先碼個高時間複雜度的(O(N^2)):
#include<stdio.h> void sort(int a[]); int main() { int a[10]={1,4,2,34,12,5,76,33,9,18}; sort(a); printf("k:%d\n",a[10/2-1]); return 0; } //氣泡排序O(n*n) void sort(int a[]) { int t=0,i,j; for(i=0;i<10/2;i++) { for(j=i+1;j<10;j++) { if(a[i]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } printf("%d ",a[i]); } printf("\n"); } //或者 //插入排序O(n*n) /*void sort(int a[]) { int i,j,k; for(j=0;j<10;j++) { k=a[j]; for(i=j-1;i>=0&&a[i]<k;i--) { a[i+1]=a[i]; } a[i+1]=k; } for(i=0;i<10;i++) { printf("%d ",a[i]); } }*/