排序算法
该专栏里均为排序算法的图解和实现
芷汀若静
程序猿和程序媛的完美邂逅在下个路口
展开
-
重温经典排序算法之合并排序——图解+C/C++实现
目录1.合并排序简介2.算法性能分析(1)时间复杂度(2)空间复杂度3.算法图解4.C/C++实现1.合并排序简介合并排序是采用分治法的一个非常典型的应用。该排序算法将两个或两个以上的有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的,然后再把有序子序列合并为整体有序序列。2.算法性能分析(1)时间复杂度①最好时间复杂度为O(logn)O(logn)O(...原创 2020-04-06 18:01:36 · 1487 阅读 · 1 评论 -
重温经典排序算法之快速排序——图解+C/C++实现
目录1.快速排序原理2.算法性能分析(1)时间复杂度(2)算法稳定性3.图解分析4.C/C++实现1.快速排序原理对于要排序的数组,首先任意选取一个数据(通常为首元素)作为关键数据,将序列中所有比该元素小的元素都放到它的左边,将所有比它大的元素都放到它的右边,再对左右两边分别用同样的方法直到每一个待处理的序列长度为1,排序结束。2.算法性能分析(1)时间复杂度a.最好情况的时间复杂度:每...原创 2020-04-05 20:56:31 · 2231 阅读 · 1 评论 -
重温经典排序算法之直接插入排序——图解+C/C++实现
目录1.直接插入排序算法原理2.算法性能分析(1)时间复杂度(2)算法稳定性3.图解分析4.C/C++实现1.直接插入排序算法原理将n个元素的数列分为已经有序和无序两部分,循环的操作就是将无序数列的第一个元素与有序数列的元素从末尾往前逐个比较,将该元素插入到有序数列的合适位置中去,直到序列最后一个元素操作完毕为止。如:假设序列array[6]={3,7,5,2,1,6},第二次比较后的数组变...原创 2020-03-30 17:09:23 · 525 阅读 · 0 评论 -
重温经典排序算法之选择排序——图解+C/C++实现
目录1.选择排序算法原理2.算法性能分析(1)时间复杂度(2)算法稳定性3.图解分析4.C/C++实现1.选择排序算法原理1.第一趟排序从待排序的数中选出最小的数并将其与起始位置元素交换;2.第二趟排序则是从剩余待排序数中选出最小将其与第二个位置的数交换;3.以此类推,直到全部待排序的元素个数为零。2.算法性能分析(1)时间复杂度选择排序比较次数与初始数组状态无关,总的比较次数为:C...原创 2020-03-29 09:11:55 · 1149 阅读 · 0 评论 -
重温经典排序算法之冒泡排序——图解+C/C++实现
目录1.冒泡排序算法原理:2.算法性能分析:(1)时间复杂度(2)算法稳定性3.图解分析4.C/C++实现1.冒泡排序算法原理:【说明】这里实现的冒泡排序算法均为从小到大排序1.比较相邻的元素,如果第一个比第二个大,就交换他们;2.第一趟排序:第一个和第二个比较,若前者比后者大则交换;第二个和第三个比较满足前者较大则交换;随后依次进行相邻两个数的比较与交换,直到最后一对。第一趟排序结束后,...原创 2020-03-28 13:40:01 · 3155 阅读 · 1 评论