美文网首页
使用快速排序在排序的同时对另一个数组进行操作

使用快速排序在排序的同时对另一个数组进行操作

作者: 丶仅此而已丶 | 来源:发表于2019-05-01 13:33 被阅读0次
    #!/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)
    

    相关文章

      网友评论

          本文标题:使用快速排序在排序的同时对另一个数组进行操作

          本文链接:https://www.haomeiwen.com/subject/emoinqtx.html