document.write('
本题目可以使用类似快速排序的方法处理,可以用两个索引分别指向字符串的首和尾,首索引正向遍历字符
串,找到第一个大写字母,尾索引逆向遍历字符串,找到第一个小写字母,交换两个索引位置的字符,然后
将两个索引沿着相应的方向继续向前移动,重复上述步骤,直到首索引大于或等于尾索引为止。具体实现如
下:
 # 对字符数组排序, 使得小写字母在前, 大写字母在后
 def ReverseArray(ch):
 lens=len(ch)
 begin=0
 end=lens-1
 while begin<end:
 #正向遍历找到下一个大写字母
 while ch[begin]>=\'a\'and ch[end]<=\'z\'and end>begin:
 begin+=1
 #逆向遍历找到下一个小写字母
 while ch[end]>=\'A\' and ch[end]<=\'Z\' and end> begin:
 end-=1
 temp=ch[begin]
 ch[begin]=ch[end]
 ch[end]=temp
 
 if __name__=="__main__":
 ch=list("AbcDef")
 ReverseArray(ch)
 i=0
 while i<len(ch):
 print ch[i],
 i+=1
 程序的运行结果为:
 fbceDA
 算法性能分析:

 这种方法对字符串只进行了一次遍历,因此,算法的时间复杂度为O(N),其中,N是字符串的长度。 

');