常用排序算法C++&&Python实现
利用C++和Python语言实现常用的排序算法,包括:冒泡排序、希尔排序、选择排序、快速排序、归并排序、堆排序直接插入排序、基数排序。
007lizhen
这个作者很懒,什么都没留下…
展开
-
排序算法C++ && Python实现---直接插入排序
算法思想: 直接插入排序的思想是:从待排序序列的第一个元素开始,依次比较相邻的两个元素,若后者小于前者(从小到大排序),则将后者作为哨兵,插入到序列中的正确位置。 那么问题来了,怎么样才能将哨兵插入到正确的位置呢?这就是下面需要着重解决的问题。 考虑,第i个元素作为哨兵,则意味着data[i-1]>data[i]的,且经过前面的排序后,前面的0~i-1个元素已经从小到大排好序了。那么,可原创 2017-04-26 15:30:33 · 366 阅读 · 0 评论 -
排序算法的C++ && Python实现---希尔排序(缩小增量排序)
算法思想 希尔排序是在直接插入排序的基础上进行改进。直接插入排序时每次数据间间隔总为1,遍历整个序列,而希尔排序时每次数据间间隔分别为n/2、n/4、…、1,然后再对每一个分组数据进行直接插入排序,当间隔小于1时,表明排序完成。C++代码(VS2012)://打印排序结果函数void Print(int a[],int n,int i=0){ //cout<<i<<endl;原创 2017-04-27 10:43:15 · 349 阅读 · 0 评论 -
排序算法的C++ && Python实现---选择排序
算法思想: 选择排序有简单的选择排序和二元选择排序。其中,简单选择排序是依次寻找序列中的最小值,然后将其放入序列的前端。比如,序列 a[16]={88,10,71,29,50,9,34,4,675,3,89,19,55,67,45,234};第一次循环找到最小值3,然后与第一个元素交换;接下来,在除去第一个元素后的序列中寻找最小值,并与原序列中的第二个元素交换;直到第n个元素与第n-1个元素交换完原创 2017-04-27 11:09:32 · 354 阅读 · 0 评论 -
排序算法C++ && Python实现---堆排序
堆排序是利用“堆”的概念,将一列数进行排序。本文首先介绍“堆”的定义,说明“堆”排序的过程和解决思路,最后利用C++和Python实现算法。“堆”的定义 具有n个元素的序列(k1,k2,...,knk_1,k_2,...,k_n),当且仅当满足: {ki≤k2iki≤k2i+1\{^{k_i\le{k_{2i}}}_{k_i\le{k_{2i+1}}} (小顶堆)原创 2017-05-30 09:43:34 · 499 阅读 · 0 评论 -
排序算法C++ && Python实现---快速排序
本文将介绍快速排序算法及一种优化的快速排序算法。1.基本的快速排序算法: (1)算法原理: 首先从待排序数组中选取参考数据keyvalue(一般选取数组第一个或最后一个数据),根据keyvalue的大小将待排序数组分成两部分(大于keyvalue部分和小于keyvalue部分),对这两部分分别递归调用快速算法。 流程图如下: (2)C++实现://打印排原创 2017-08-21 11:56:38 · 313 阅读 · 0 评论 -
排序算法C++&&Python实现---归并排序
本文将介绍归并排序算法的基本思想及其C++和Python的代码实现。归并排序基本思想: 首先将待排序数列两两分组,将排序好的两个序列归并到中间数组中,依次类推,直到归并完整个待排序数列。C++实现://打印排序结果函数void Print(int a[],int n,int i=0){ //cout<<i<<endl; cout<<"排序后的结果为:"<<endl;原创 2017-08-22 10:17:25 · 327 阅读 · 0 评论 -
常用排序算法C++ && Python实现
本文对常用的排序算法进行总结,并利用C++和Python语言实现。另:本文所有代码皆上传至[我的码云](https://git.oschina.net/git-lizhen)。 一、直接插入排序1. 算法思想: 直接插入排序的思想是:从待排序序列的第一个元素开始,依次比较相邻的两个元素,若后者小于前者(从小到大排序),则将原创 2017-09-01 11:59:24 · 392 阅读 · 0 评论 -
排序算法C++&&Python实现---冒泡排序
本文将介绍基本的冒泡排序算法及两种冒泡排序的优化算法。一、基本冒泡排序算法原理:对于待排序数列,从后到前依次比较相邻两个元素,若后面的元素小于前面的元素,则交换。(从小到大排序)C++实现//打印排序结果函数void Print(int a[],int n,int i=0){ //cout<<i<<endl; cout<<"排序后的结果为:"<<endl; for原创 2017-05-30 11:16:30 · 719 阅读 · 0 评论 -
排序算法C++&&Python实现---基数排序
本文将介绍基数排序算法的基本思想,并附上C++和Python实现的源代码。基数排序的基本思想: 我是这样理解基数的:任何多位数都是有个位、十位、百位。。。构成的,那么其中的个位、十位、百位等的数字就可称为该数据的基数。从而,我们可以依次根据基数的大小来判断数据的大小。比如:先判断数据的个位数,将它们按个位数的大小从大到小依次排列起来,然后在依次比较十位数,依次类推,直至比较完数据的所有位数。C+原创 2017-08-22 17:41:50 · 316 阅读 · 0 评论