谁能告诉我这段在Python中对列表进行排序的代码的时间复杂度?

问题描述 投票:0回答:1
我尝试过使用代码对列表进行排序,但我很困惑它是否正确以及它是否是更好的解决方案。

在我的代码下面:-

class MyStackSort:
MIN = list()
MAX = list()

def sort(self, my_list):
    for index, num in enumerate(my_list):
        if self.MIN:
            if self.MIN[0] >= num:
                self.MIN = [num] + self.MIN

            elif self.MIN[-1] == num:
                self.MIN = self.MIN + [num]

            elif self.MIN[0] < num and self.MIN[-1] > num:
                for ind, min_n in enumerate(self.MIN):
                    if ind != 0 and min_n == num or self.MIN[ind-1] < num < self.MIN[ind]:
                        self.MIN = self.MIN[:ind] + [num] + self.MIN[ind:]
                        break
        elif not index == 0 and num != my_list[index-1]:
            self.MIN += [num]

        if self.MAX:
            if self.MAX[-1] <= num:
                self.MAX += [num]

            elif self.MAX[0] == num:
                self.MAX = [num] + self.MAX 

            elif self.MAX[0] < num < self.MAX[-1]:
                for ind, max_n in enumerate(self.MAX):
                    if ind != 0 and max_n == num or self.MAX[ind-1] < num < self.MAX[ind]:
                        self.MAX = self.MAX[:ind] + [num] + self.MAX[ind:]
                        break
        else:
            self.MAX += [num]

    return self.MIN + self.MAX

我尝试过使用代码对列表进行排序,但我很困惑它是否正确以及是否是更好的解决方案。 如果有人知道请回复。

python arrays algorithm sorting time-complexity
1个回答
0
投票

这个排序算法不正确。这是一个未正确排序的列表的反例。

a = [1, 2]
sorter = MyStackSort()
print(sorter.sort(a))

输出:

[2, 1, 2]
© www.soinside.com 2019 - 2024. All rights reserved.