面接アルゴリズム問題02——暴力列挙法

3154 ワード

配列A中の要素を並べ替え、配列Bを得て、B[0]<=B[1]>=B[2]<=B[3]...
暴力列挙法では,まず配列Aを降順に並べ,隣接する2つの要素を交換すればよいという考え方が簡単である.具体的なコードは以下のように実現される.
スワップ関数の定義
A = [1,2,3,4,5,6,7,8,9,10]def swap(array,i,j):          
    temp = array[i]        
    array[i] = array[j]        
    array[j] = temp

機能実装:
A = sorted(A,reverse = True)    
for i in range(0,len(A)-1,2):        
    swap(A,i,i+1)    
print(A) 

並べ替えの時間的複雑度はO(nlg(n))O(nlg(n))O(nlg(n))であるため,アルゴリズム全体の時間的複雑度はO(nlg(n))O(nlg(n))O(nlg(n))O(nlg(n))である.