数据结构 - 冒泡排序
2018-04-01 06:57
176 查看
冒泡排序
冒泡排序的主要原理是两两比较,将较大者放在靠后的位置,用此种方法,将最大的值一点一点推到数列的后端。因此,对于一个长为n的数组,经过n-1遍冒泡,一定能将数组排序。
时间复杂度:设T(n)为对长度为n的待排序列进行排序的时间。
则比较次数为:n-1 + n-2 + ... + 1 = (n-1) * n / 2 = O(n^2) 而且,无论数组排序状况如何,都要进行这么多次的比较
交换次数:最理想的情况下,只用对数组进行比较,不用进行排序。
最坏情况下,数组为倒序排列,则需要进行 (n-1) * n /2 = O(n^2) 次交换class Solution:
def bubble_sort(self, nums):
lens = len(nums)
for i in range(lens - 1):
for j in range(lens - i - 1):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
print(nums)
return(nums)
if __name__ == "__main__":
sol = Solution()
res = sol.bubble_sort([9,7,5,3,2,7,5,4,23,9,56,67,23,11])
print(res)
时间复杂度:设T(n)为对长度为n的待排序列进行排序的时间。
则比较次数为:n-1 + n-2 + ... + 1 = (n-1) * n / 2 = O(n^2) 而且,无论数组排序状况如何,都要进行这么多次的比较
交换次数:最理想的情况下,只用对数组进行比较,不用进行排序。
最坏情况下,数组为倒序排列,则需要进行 (n-1) * n /2 = O(n^2) 次交换
冒泡排序的主要原理是两两比较,将较大者放在靠后的位置,用此种方法,将最大的值一点一点推到数列的后端。因此,对于一个长为n的数组,经过n-1遍冒泡,一定能将数组排序。
时间复杂度:设T(n)为对长度为n的待排序列进行排序的时间。
则比较次数为:n-1 + n-2 + ... + 1 = (n-1) * n / 2 = O(n^2) 而且,无论数组排序状况如何,都要进行这么多次的比较
交换次数:最理想的情况下,只用对数组进行比较,不用进行排序。
最坏情况下,数组为倒序排列,则需要进行 (n-1) * n /2 = O(n^2) 次交换class Solution:
def bubble_sort(self, nums):
lens = len(nums)
for i in range(lens - 1):
for j in range(lens - i - 1):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
print(nums)
return(nums)
if __name__ == "__main__":
sol = Solution()
res = sol.bubble_sort([9,7,5,3,2,7,5,4,23,9,56,67,23,11])
print(res)
时间复杂度:设T(n)为对长度为n的待排序列进行排序的时间。
则比较次数为:n-1 + n-2 + ... + 1 = (n-1) * n / 2 = O(n^2) 而且,无论数组排序状况如何,都要进行这么多次的比较
交换次数:最理想的情况下,只用对数组进行比较,不用进行排序。
最坏情况下,数组为倒序排列,则需要进行 (n-1) * n /2 = O(n^2) 次交换
相关文章推荐
- 【东东学数据结构】冒泡排序
- 【数据结构】常用比较排序算法(包括:选择排序,堆排序,冒泡排序,选择排序,快速排序,归并排序)
- 数据结构-冒泡排序
- 数据结构-冒泡排序
- 数据结构学习之冒泡排序Java实现
- 数据结构-冒泡排序(Python&java实现)
- PHP 数据结构 算法描述 冒泡排序 bubble sort
- 【python 数据结构 1:排序】冒泡排序和快速排序
- 【java coding:数据结构】用java实现冒泡排序
- 数据结构——冒泡排序
- 数据结构跑路篇——冒泡排序
- 数据结构 冒泡排序文字与图示详解及冒泡编程例子
- 数据结构学习笔记 --- 排序(冒泡排序、快速排序)
- 数据结构排序之冒泡排序
- 【数据结构】常用比较排序算法(包括:选择排序,堆排序,冒泡排序,选择排序,快速排序,归并排序)
- 数据结构与算法——三种基础排序算法C#实现(冒泡排序、选择排序、插入排序)
- 数据结构和算法之排序四:冒泡排序
- 笔试,面试,C/C++,数据结构单链表排序(改进冒泡排序)
- 数据结构-冒泡排序
- 数据结构:冒泡排序及其改进、插入排序和希尔排序