【python】数组重新排序?

题目:将数组A中的元素重新排列,得到数组B,使其具有如下特点:

B[0] <= B[1] >= B[2] <= B[3] ...

分析:遍历数组,如果元素下标i是偶数,且A[i] > A[i + 1],那么就两两交换;如果i是奇数,且A[i] < A[i + 1],那么也两两交换,其最终也能达成效果。时间复杂度O(n)。

code:

def swap(arr, i, j):

    temp = arr[i]

    arr[i] = arr[j]

    arr[j] = temp

arr = [1, 3, 4, 5, 6, 2, 7, 9, 10]

for i in range(len(arr) - 1):

    if (i % 2 == 0 and arr[i] > arr[i + 1] or (i % 2 == 1 and arr[i] < arr[i + 1])):

        swap(arr, i, i + 1)

print(arr)

程序运行结果:

[1, 4, 3, 6, 2, 7, 5, 10, 9]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,454评论 0 2
  • 第1章 第一个C程序第2章 C语言基础第3章 变量和数据类型第4章 顺序结构程序设计第5章 条件结构程序设计第6章...
    小狮子365阅读 10,773评论 3 71
  • 0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对...
    Demon_code阅读 1,073评论 0 2
  • 你去哪家饭店吃饭, 你几点出门, 你选择走那条路, 你是否去参加朋友的聚会, 你考入不同的学校和专业, 每一个微小...
    我是舒阳阅读 655评论 4 4
  • 又是一年飘雪时,漫天飞舞的鹅毛大雪像季节的小精灵,在你拥抱它的时候调皮地和你捉着迷藏,把它曼妙的身姿悄悄的躲藏。 ...
    123_d44e阅读 347评论 0 4