Python如何在对一个列表排序的同时对另一个列表进行操作(排序

2019-10-01  本文已影响0人  疾风_KANA

环境

系统:Windows 10
编译器:Python2.7

目的

对一个列表排序的同时对这个列表对应的另一个列表进行操作(排序)

代码

#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Time     :
# @Author   : liyi
# @File     :

# 在快排的同时按同样的排序算法对另一个数组进行操作

def quick_sort(array, cid_list, left, right):

    if left >= right:
        return [array,cid_list]
    low = left
    high = right
    key = array[low]
    cid_key = cid_list[low]
    while left < right:
        while left < right and array[right] > key:
            right -= 1
        array[left] = array[right]
        cid_list[left] = cid_list[right]
        while left < right and array[left] <= key:
            left += 1
        array[right] = array[left]
        cid_list[right] = cid_list[left]
    array[right] = key
    cid_list[right] = cid_key
    quick_sort(array, cid_list, low, left - 1)
    quick_sort(array, cid_list, left + 1, high)
    return [array, cid_list]


if __name__ == '__main__':
    test = [1, 5, 6, 2]
    cid_list = [6, 5, 3, 8]
    print(quick_sort(test, cid_list, 0, 3))
    print(test)
    print(cid_list)
上一篇 下一篇

猜你喜欢

热点阅读