設計一個算法從數 A[1:n] 中同時找出最大元素和最小元素,只需要不超過 1.5n-2 次比較。
阿新 • • 發佈:2018-12-16
number com str png 統計 最小 int 比較 技術分享
題目:設計一個算法從數A[1:n]
中同時找出最大元素和最小元素,只需要不超過1.5n-2
次比較。
#include <stdio.h> #define MIN -1 #define MAX 65535 void find_max_min( int num[], int len ) { int i, j; int max = MIN; int min = MAX; int tmax, tmin; int count = 0; /*用來統計比較次數*/ i = 0; j = len - 1; while ( i <= j ) { if ( num[i] < num[j] ) { tmax = num[j]; tmin = num[i]; count++; } else { tmax = num[i]; tmin = num[j]; count++; } if ( min > tmin ) min = tmin; if ( max < tmax ) max = tmax; count += 2; /*上面的兩次比較*/ i++; j--; } printf( "The max number is: %d.\n", max ); printf( "The min number is: %d.\n", min ); printf( "Compare number is: %d.\n", count ); } int main() { int num[10] = { 2, 4, 5, 6, 8, 3, 7, 1, 9, 10 }; find_max_min( num, 10 ); return(0); }
參考鏈接:
- https://blog.csdn.net/laoniu_c/article/details/38468167
設計一個算法從數 A[1:n] 中同時找出最大元素和最小元素,只需要不超過 1.5n-2 次比較。