
算法
小风游鱼
数据库中间件相关产品开发,大数据开发
展开
-
十大排序算法之插入排序
十大经典排序算法有:一、插入排序 (1)、直接插入排序:/* 直接插入排序,算法时间复杂度为:O(n^2), 稳定的排序算法 Written by: Qinchao Time:2016/12/3 Language: C++*/void insertsort_1(vector &_snum, int _len){ int j = 0; int temp =原创 2016-12-03 21:32:09 · 295 阅读 · 0 评论 -
十大排序算法之计数排序
计数排序算法:void countingsort_10(vector &_snum, int _len){ vector::iterator k; k = max_element(_snum.begin(), _snum.end()); int knum = _snum[k - _snum.begin()]; vector t(knum); vector result(_len);原创 2016-12-03 21:34:30 · 491 阅读 · 0 评论 -
十大排序算法之归并排序算法
归并排序算法:/*归并排序,算法时间复杂度为:O(nlogn), 稳定排序算法Written by: QinchaoTime:2016/12/3Language: C++*/const int INFTY = 2147483647;void merge(vector &_num, int left, int mid, int right ){ int n1 = mid - l原创 2016-12-03 21:36:02 · 1109 阅读 · 0 评论 -
十大经典排序算法之交换排序
交换排序算法:一、冒泡法:/*冒泡排序,算法时间复杂度为:O(n^2),稳定的排序算法Written by: QinchaoTime:2016/12/3Language: C++*/void bubblesort_6(vector &_snum, int _len){ int temp; for (int i = 0; i < _len; i++) for (int原创 2016-12-03 22:04:14 · 1084 阅读 · 0 评论 -
求链表中倒数第K个节点
思路: 用两个指针,第一个指针西安走k-1步,然后两个指针再一起走。当第一个指针走到尾节点时,第二个指针指向的就是倒数第K个节点。证明: 设节点个数为m, 则第一个指针两次分别走了k-1, n-k+1步; 第二个指针走了n-k+1步, 第二个指针所处的倒数的位置为:n-(n-k+1)+1=k。原创 2017-07-16 00:14:12 · 266 阅读 · 0 评论 -
单链表的反转算法
经典单链表反转问题,不增加额外空间消耗,去对单链表进行翻转,输出逆序后的链表。具体执行过程如下所示:上图显示了单链表翻转算法的步骤示意图,核心代码如下:while head->next!=NULL head->next=pre; pre=head; head=next; next=head->next;原创 2017-07-16 00:09:00 · 547 阅读 · 0 评论