zoukankan      html  css  js  c++  java
  • python笔试题

    冒泡排序的原理:每次对相邻的两个元素进行比较,若前者大于后者,这将两者的位置交换。第一轮就可以将最大的元素置于列表的最后。几轮循环

    冒泡排序的前提条件:有序的列表

    import unittest
    # 冒泡排序

    def bubble_sort(arr):
    for i in range(len(arr) - 1): #这个循环负责设置冒泡排序进行的次数
    for j in range(len(arr) - 1 - i): #j为下标
    if arr[j] > arr[j + 1]:
    arr[j], arr[j + 1] = arr[j + 1], arr[j]
    return arr

    class SortTesrCase(unittest.TestCase):

    def test_bubble_sort(self):
    test_data_1 = [4,5,1,2,3]
    copy_test_data_1 = test_data_1[:]

    bubble_sort(test_data_1)
    copy_test_data_1.sort()

    self.assertEqual(test_data_1,copy_test_data_1)

    if __name__ == '__main__':
    unittest.main()


    二分查找

    有序列表中,顺序查找需要从一端到另一端按照顺序进行查找,最多需要比较n次。二分查找从中间项开始

    如果该项是我们目标项,则完成查找;如果目标项大于中间项,则可以消除中间项及比中间项目小的那一部分;反之,消除中间项目及比中间项目比较大的那一部分,之后再次重复上面过程。

    import unittest

    def bin_search(arr, target):
    length = len(arr)
    mid = length // 2 # 找到中间元素

    if (length == 1 and arr[0] != target) or length == 0 : # 目标元素不存在
    return False

    if arr[mid] == target: # 如果该元素等于目标元素
    return True

    if target > arr[mid]: # 如果目标元素大于中间元素
    print(arr[mid+1:])
    return bin_search(arr[mid+1:], target) # 在列表的右半边递归进行二分查找
    else: # 小于的情况
    return bin_search(arr[:mid], target) # 在列表的左半边递归进行二分查找


    class BinSearchTestCase(unittest.TestCase):

    def test_bin_search(self):
    test_data = [9, 5, 2, 7] # 测试数据
    test_data.sort() # 先排序

    self.assertEqual(bin_search(test_data, 2), True)
    self.assertEqual(bin_search(test_data, 9), True)
    self.assertEqual(bin_search(test_data, 1), False)
    self.assertEqual(bin_search(test_data, 999), False)


    if __name__ == '__main__':
    unittest.main()




  • 相关阅读:
    selenium 等待时间
    将博客搬至CSDN
    关于科研和工作的几点思考
    窥探观察者模式
    泛型编程拾遗
    【opencv入门篇】 10个程序快速上手opencv【下】
    【opencv入门篇】 10个程序快速上手opencv【上】
    【opencv入门篇】快速在VS上配置opencv
    【MFC系列】MFC快速设置控件文本字体、大小、颜色、背景
    如何用Qt Creator输出helloworld
  • 原文地址:https://www.cnblogs.com/zyblb/p/11095979.html
Copyright © 2011-2022 走看看