编程笔试系列—冒泡排序

测试面试时都会遇到编程题,主要还是以简单的算法为主。
基础算法里总是离不开排序,所谓排序就是把一组乱序的数据从大到小或者从小到大排列出来。排序算法中最简单的就是冒泡排序了。

下面通过python对list中的元素进行冒泡排序,并编写unittest单元测试用例来验证。

思路:
1)首先比较每个相邻的元素,把大的元素换到右边,这样每次比较完一行就可以把最大的数字移动到最右边,也就是冒泡;
2)重复上述操作,把每次找到的最大的元素换到当前比较队列的最右。

import unittest  #导包

def bubble_sort(arr): 
	length = len(arr)
	for i in range(length-1):   # i表示已经找到的最大元素的个数(从0到length-1,最后一个就无需比较)
		for j in range(length-i-1):  
			if arr[j] > arr[j+1]:
				arr[j], arr[j+1] = arr[j+1], arr[j]   #python中交换变量值

class SortTestCase(unittest.TestCase):   #定义测试类
	def test_bubble_sort(self):
		test_data = [8, 3, 5, 6]
		copy_of_data = test_data[:]  #拷贝
		bubble_sort(test_data)
		copy_of_data.sort()
		
		self.assertEqual(test_data, copy_of_data)   #断言

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

测试的面试编程题,主要还是考察基本算法。加油!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值