![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机算法
1、常用算法 2、leetcode
hubery_zhang
学习理论、练习编程
展开
-
堆排序实现
堆排序的实现与优先队列相似。本文先给出堆排序代码,然后对其中要点进行解释,程序中的注释已经很详细了。接着,给出一个应用对排序的编程题(华为笔试题)。实例:从小标0开始存放数据,利用数组实现大顶堆,从而实现堆排序。#include <iostream> using namespace std; #define ElementType int void showFunc(Elemen...原创 2018-07-13 17:28:47 · 396 阅读 · 0 评论 -
快速排序实现(附原理参考资料和代码实现关键点描述)
本文介绍两种方法,因为第一种方法相对来说,易于理解,故重点在方法二的说明上。快速排序是利用分治思想实现的一种排序方法,该方法的大致思路是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。实现方法一:挖坑填数具体思路可以参考:https://blog.csdn.net/morewind...原创 2018-06-16 16:58:41 · 286 阅读 · 0 评论 -
基本排序方法实现:选择排序、插入排序、希尔排序
三个基本排序问题的实现,先给出几个公用的比较函数、元素交换函数和显示函数。#include <iostream> using namespace std; #define ElementType char bool lessFunc(ElementType cur, ElementType ref) //比较函数 { return cur < ref; } void e...原创 2018-06-13 22:06:31 · 501 阅读 · 0 评论 -
基本的排序问题
一、冒泡排序 最小比较次数:n-1 次; 最大比较次数:n(n-1)/2; 时间复杂度:O(n); //冒泡排序;C语言;主要程序void bubble_sort(a[],n) { int i,j,temp; bool flag=true; for(i=0;i<n-1;i++) { for (j=0;j<n-1-i;j++)原创 2017-09-07 15:00:51 · 402 阅读 · 0 评论