コード例 #1
0
ファイル: bubble_sort.py プロジェクト: Migwel/algo-animation
    def sort(self):
        nodes_length = len(self.nodes)
        swapped = True
        nb_iterations = 1
        nb_iterations_text = None
        while swapped:
            self.remove(nb_iterations_text)
            nb_iterations_text = TextMobject("Iteration " + str(nb_iterations))
            nb_iterations_text.move_to(2 * UP)
            self.add(nb_iterations_text)

            swapped = False
            arrow = Arrow(UP + RIGHT)  # I don't get it
            arrow.scale(1)
            arrow.move_to(UP + 3 * LEFT)
            self.add(arrow)
            for i in range(nodes_length - 1):
                arrow.generate_target()
                arrow.target.move_to(self.nodes[i].circle.get_arc_center() +
                                     UP)
                self.play(MoveToTarget(arrow))
                if self.nodes[i + 1].value < self.nodes[i].value:
                    self.swap_nodes(i, i + 1)
                    swapped = True

            self.remove(arrow)
            nb_iterations = nb_iterations + 1
            self.wait(0.1)

        self.remove(nb_iterations_text)
コード例 #2
0
ファイル: select_sort.py プロジェクト: Migwel/algo-animation
 def sort(self):
     nodes_length = len(self.nodes)
     arrow = Arrow(UP + RIGHT)  # I don't get it
     arrow.scale(1)
     arrow.move_to(UP + 3 * LEFT)
     self.add(arrow)
     for i in range(nodes_length):
         arrow.generate_target()
         arrow.target.move_to(self.nodes[i].circle.get_arc_center() + UP)
         self.play(MoveToTarget(arrow))
         index_min = self.find_index_minimum(i)
         if i != index_min:
             self.swap_nodes(i, index_min)
         self.nodes[i].circle.set_color(GREEN)
コード例 #3
0
 def sort(self):
     nodes_length = len(self.nodes)
     arrow = Arrow(UP + RIGHT)  # I don't get it
     arrow.scale(1)
     arrow.move_to(UP + 3 * LEFT)
     self.add(arrow)
     for i in range(1, nodes_length):
         arrow.generate_target()
         arrow.target.move_to(self.nodes[i].circle.get_arc_center() + UP)
         self.play(MoveToTarget(arrow))
         j = i
         while j > 0 and self.nodes[j].value < self.nodes[j - 1].value:
             self.swap_nodes(j, j - 1)
             j = j - 1
         self.wait(0.1)
コード例 #4
0
ファイル: select_sort.py プロジェクト: Migwel/algo-animation
    def find_index_minimum(self, from_index):
        arrow = Arrow(DOWN + RIGHT)  # I don't get it
        arrow.scale(0.5)
        arrow.move_to(self.nodes[from_index].circle.get_arc_center() + DOWN)
        arrow.set_color(BLUE)
        self.add(arrow)
        index_min = from_index
        self.nodes[index_min].circle.set_color(BLUE)
        for i in range(from_index + 1, len(self.nodes)):
            arrow.generate_target()
            arrow.target.move_to(self.nodes[i].circle.get_arc_center() + DOWN)
            self.play(MoveToTarget(arrow))
            if self.nodes[i].value < self.nodes[index_min].value:
                self.nodes[index_min].circle.set_color(RED)
                index_min = i
                self.nodes[index_min].circle.set_color(BLUE)

        self.remove(arrow)
        return index_min