算法----(1)冒泡排序

本文详细介绍了内部排序算法,包括比较排序和非比较排序两大类。对比了各种排序算法的时间复杂度,并解释了排序算法稳定性的重要性。提供了冒泡排序的Python实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。

排序算法大体可分为两种:

一种是比较排序,时间复杂度O(nlogn)~O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序

另一种是非比较排序,时间复杂度可以达到O(n),主要有:基数排序,基数排序,桶排序

 

排序算法的稳定性:如果Ai = Aj, 排序前AiAj之前,排序后Ai还在Aj之前,则称这种排序算法是稳定的

排序算法是否稳定,必须对算法发进行分析从而得到稳定的特性,是否稳定不是绝对的,由具体算法决定

排序算法稳定性好处,前一个键排序的结果可以为后一个键排序所用

 

 

 

冒泡排序

重复地走访过要排序的元素,依次比较相邻两个元素,如果他们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端。

python代码:

 

 1 def bubble_sort(arr):
 2     for i in range(0, len(arr)):
 3         for j in range(0, len(arr) - i - 1):
 4             if arr[j] > arr[j + 1]:
 5                 arr[j], arr[j + 1] = arr[j+1], arr[j]
 6     for i in range(len(arr)):
 7         print(arr[i])
 8 
 9 
10 def main():
11     a = [1, 3, 2, 4, 9, -1]
12     bubble_sort(a)
13 
14 
15 if __name__ == '__main__':
16     main()

 图片来源:http://www.cnblogs.com/eniac12/p/5329396.html

转载于:https://www.cnblogs.com/MC-Curry/p/9347815.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值