![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序笔记
文章平均质量分 80
gamilian
这个作者很懒,什么都没留下…
展开
-
排序算法总结 c/c++与python实现
排序的定义排序,就是重新排列表中的元素,使表中的元素满足按关键字有序的过程。排序算法的稳定性算法的稳定性是指如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后顺序不变,那么这个算法就是稳定的排序算法。排序算法的分类在排序过程中,根据数据元素是否完全在内存中,可将排序算法分为两类:内部排序,是指排序期间元素全部存放在内存中的排序。外部排序,是指排序期间元素无法全...原创 2020-04-15 13:13:56 · 305 阅读 · 0 评论 -
排序(五)线性时间排序 c/c++与python实现
计数排序(Counting sort)计数排序的基本思想:计数排序是一种非比较性质的排序算法,首先先用一块maximun - minimum + 1大小的额外空间存储序列中每个值出现的次数,然后遍历待排序序列,将每一个元素出现的次数记录到元素值对应的额外空间内,对额外空间内数据进行计算,得出每一个元素的正确位置,最后将待排序序列每一个元素移动到计算得出的正确位置上。关于比较性质的算法:比较...原创 2020-04-14 14:53:28 · 370 阅读 · 0 评论 -
排序(四)归并排序 c/c++与python实现
归并排序(Merge Sort)归并,即将两个或两个以上的有序表组成一个新的有序表。2-路归并排序的基本思想:将序列视为n个组,将这些组两两归并归并为n/2个组,然后将这些组再两两归并,生成n/4个组,以此类推,直到只剩下一个组为止。归并排序使用的就是分治思想,即先把序列从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分归并在一起,这样整个序列就都有序了。关于递归与分治:...原创 2020-04-14 10:08:00 · 187 阅读 · 0 评论 -
排序(三)选择排序 c/c++与python实现
选择排序(Selection Sort)选择排序的基本思想:每次会从未排序区间中找到最小的元素,将其放到已排序区间的末尾。主要有简单选择排序,堆排序。简单选择排序简单选择排序的基本思想:每次从未排序区间中找到一个最小的元素,与未排序区间的第一个元素交换,这样每次就可以确定一个元素的最终的位置,重复n-1,就完成了对n个数据的排序。// 简单选择排序c实现,a表示数组,n表示数组大小/**...原创 2020-04-01 20:43:04 · 206 阅读 · 0 评论 -
排序(二)插入排序 c/c++与python实现
插入排序插入排序的基本思想:每次将一个待排序的记录按其关键字大小插入到前面已经排好序的子序列中,知道全部记录插入完成。主要有直接插入排序、折半插入排序和希尔排序。直接插入排序(Straight Insertion Sort)直接插入排序的基本思想:首先,我们将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有一个元素,就是数组的第一个元素。直接插入算法的核心思想是取未排序区...原创 2020-03-27 22:34:49 · 202 阅读 · 0 评论 -
排序(一)交换排序 c/c++与python实现
冒泡排序(Bubble Sort)冒泡排序的基本思想:从前往后或者从后往前,对相邻的两个元素进行比较,若逆序,则交换。每次冒泡排序都会让至少一个元素移动到它应该在的位置,重复n-1,就完成了对n个数据的排序。如果对一组数据7,8,9,6,5,4,从小到大排序,第一次冒泡排序的详细过程如下所示:可以看出一次冒泡操作后,有一个元素已经移动到应该在的位置上了,经过n-1次这样的冒泡操作后,n-1个...原创 2020-03-26 13:30:07 · 488 阅读 · 0 评论