《(职业经理培训)修改选择排序c语言实作为由小至大排列并传回回圈执行次》由会员分享,可在线阅读,更多相关《(职业经理培训)修改选择排序c语言实作为由小至大排列并传回回圈执行次(1页珍藏版)》请在金锄头文库上搜索。
1、a. 修改選擇排序c語言實作為由小至大排列並傳回迴圈執行次數 int selection_sort( int Aa , int N) 輸入: 陣列A,其上限為N 輸出:陣列A由小至大排列,迴圈執行次數,請清楚說明指令功能 Ans:select_sort( int a , int N ) int i, j , min, temp,count; i = 0; do min = i; for ( j = i+1; jN; j+) if ( a j a min ) min = j; count+; temp = a i ; a i = a min ; a min = temp; i+; while (
2、i N-1); b. 一個三維陣列A( -3:2, -2:3, 0:4 )是以列為主方式排列,A陣列起始位址為318 ,試計算A(1, 3, 3)所在位置?(假設該陣列每一元素佔一位元組) 三維陣列A( l1:l, l2:m,l3:n ) Ans: Loc A(i,j,k) =起始位置() + (i-l1)(m-l2+1)(n-l3+1)d + (j-l2)(n-l3+1)d + (k-l3)d = 318 + (1-(-3)(3-(-2)+1)(4-0+1)d+ (3-(-2)(4-0+1)d+(3-0)d = 466c. A為(1:n, 1:m) 之陣列,A(4, 2)位址為1978,A(2, 3) 位址為1986,假設該陣列每一元素佔二 位元組,試計算A(3, 8)所在位置?Ans: Loc A(4,2) =起始位置() + (2-1)m+(4-1)*2 =1978 .(1) Loc A(2,3) =起始位置() + (3-1)m+(2-1)*2 =1986 .(2) m=6, = 1960 Loc A(3,8) =1960 + (8-1)*6+(3-1)*2 = 2048