PTA基礎程式設計題目集 6-11 求自定型別元素序列的中位數 (25分)
本題要求實現一個函式,求N個集合元素A[]的中位數,即序列中第⌊(N+1)/2⌋大的元素。其中集合元素的型別為自定義的ElementType。
函式介面定義:
ElementType Median( ElementType A[], int N );
其中給定集合元素存放在陣列A[]中,正整數N是陣列元素個數。該函式須返回N個A[]元素的中位數,其值也必須是ElementType型別。
裁判測試程式樣例:
#include <stdio.h>
#define MAXN 10
typedef float ElementType;
ElementType Median( ElementType A[], int N );
int main ()
{
ElementType A[MAXN];
int N, i;
scanf("%d", &N);
for ( i=0; i<N; i++ )
scanf("%f", &A[i]);
printf("%.2f\n", Median(A, N));
return 0;
}
/* 你的程式碼將被嵌在這裡 */
輸入樣例:
3
12.3 34 -5
輸出樣例:
12.30
我的程式碼(抄自https://blog.csdn.net/MoreWindows/article/details/6668714):
ElementType Median(ElementType A[], int N ){
ElementType b[MAXN];//輔助列表
N=N>MAXN?MAXN:N;//為避免越界,當N大於A的長度時,採用A的長度作為迴圈次數
//複製輔助列表
for (int i=0;i<N;i++){
b[i]=A[i];
}
// // 氣泡排序
// ElementType tmp;
// for (int k=1;k<N;k++){
// for (int i=0;i<N-1;i++){
// if(b[i]>b[i+1]){
// tmp=b[i];
// b[i]=b[i+1];
// b[i+1]=tmp;
// }
// }
// }
//網上希爾排序
int i, j, gap;
for (gap = N / 2; gap > 0; gap /= 2) //步長
for (i = 0; i < gap; i++) //直接插入排序
{
for (j = i + gap; j < N; j += gap)
if (b[j] < b[j - gap])
{
ElementType temp = b[j];
int k = j - gap;
while (k >= 0 && b[k] > temp)
{
b[k + gap] = b[k];
k -= gap;
// q++;
}
b[k + gap] = temp;
}
}
//計算中位數
return b[N/2];
}
最開始是想用氣泡排序,但是超時了,百度到可以用希爾排序.說實話,沒看懂,主要是最內側的while k迴圈.
相關文章
- 6-11 求自定型別元素序列的中位數 (25分)希爾排序……型別排序
- jquery實現的獲取指定元素指定型別元素數目jQuery型別
- 基礎程式設計題(PTA) 7-35 有理數均值 (20分)程式設計
- Python基礎程式設計(六)——序列型別Python程式設計型別
- pta題目集6和題目集7題後總結
- PTA題目集4~6的總結
- PTA題目集7、8的總結
- 泛型中的自限定型別泛型型別
- 基礎程式設計題(PTA) 7-26 單詞長度 (15分)程式設計
- 求二進位制數中1的個數(程式設計之美)程式設計
- PTA題目集7-9總結
- PTA題目集7-8總結
- PTA第7~8次題目集的總結
- Java程式設計基礎03——進位制運算&資料型別&變數Java程式設計資料型別變數
- [.net 物件導向程式設計基礎] (3) 基礎中的基礎——資料型別物件程式設計資料型別
- PTA題目集4~6的總結性Blog
- [.net 物件導向程式設計基礎] (5) 基礎中的基礎——變數和常量物件程式設計變數
- 求資料流中的中位數問題
- # PTA7~8題目集作業總結
- PTA題目集7-8的總結性Blog
- [.net 物件導向程式設計基礎] (4) 基礎中的基礎——資料型別轉換物件程式設計資料型別
- PTA題目總結
- jquery獲取指定型別子元素程式碼例項jQuery型別
- JavaSE基礎程式設計十題Java程式設計
- JavaScript獲取元素下指定型別的一級子元素JavaScript型別
- jQuery查詢指定型別的父級元素程式碼例項jQuery型別
- PTA7~9題目集總結與歸納
- 題目集4-6次PTA大作業總結
- OOP課程·PTA題目集1-3總結OOP
- PTA 程式設計 判斷題-期末複習程式設計
- [程式設計題] 序列交換程式設計
- PTA 7-9 求矩陣每行元素的和矩陣
- 7-34 PTA C語言--求分數序列前N項和C語言
- jQuery獲取指定型別最近的父輩元素程式碼例項jQuery型別
- 《java程式設計基礎》例題5.6Java程式設計
- PTA - C程式設計 NoC - 指標 (11道題)C程式程式設計指標
- 遊戲基礎知識——“骸骨”元素在遊戲中的設計要點遊戲
- 程式設計題目解析程式設計