
算法与数据结构
__Cm_duck
You got a dream, you gotta protect it.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
shell排序
// 希尔排序法.cpp : 定义控制台应用程序的入口点。 //希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 //先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。 //先在各组内进行直接插入排序;然后,取第二个增量d2<原创 2013-11-12 14:45:30 · 756 阅读 · 0 评论 -
冒泡
// 冒泡排序法.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include void maopao(int* a, int n); int _tmain(int argc, _TCHAR* argv[]) { int array[5] = {1, 6, 7, 3, 10}; maopao(array, 5);原创 2013-11-07 17:39:26 · 533 阅读 · 0 评论 -
插入排序
// 插入排序法.cpp : 定义控制台应用程序的入口点。 // //假定这个数组的序是排好的,然后从头往后,如果有数比当前外层元素的值大,则将这个数的位置往后挪, //直到当前外层元素的值大于或等于它前面的位置为止.这具算法在排完前k个数之后,可以保证a[1…k]是局部有序的,保证了插入过程的正确性. //算法描述: //⒈ 从第一个元素开始,该元素可以认为已经被排序原创 2013-11-12 14:40:51 · 757 阅读 · 0 评论 -
快速排序
// 快速排序法.cpp : 定义控制台应用程序的入口点。 // //快速排序时基于分治模式处理的, // 对一个典型子数组A[p...r]排序的分治过程为三个步骤: // 1.分解: // A[p..r]被划分为俩个(可能空)的子数组A[p ..q-1]和A[q+1 ..r],使得 // A[p ..q-1] <= A[q] <= A[q+1 ..r] //2.解决:通原创 2013-11-12 15:31:08 · 767 阅读 · 0 评论 -
反转链表
感觉跟插入排序法的思想有些类似,假定前面都是排序好的。pNode就是当前拿在手中的准备插入的结点,除了注意改变当前结点连接之前要保存pNode后面一个结点的位置,不然找不到下一个结点的位置了。 struct ListNode { int m_nKey; ListNode* m_pNext; }; ListNode* ReverseIteratively(ListNo原创 2013-11-26 16:45:37 · 642 阅读 · 0 评论 -
翻转字符串
#include "stdafx.h" #include #include using namespace std; //I am a student. void reverseString(char* s, int from, int to); char* reverseWord(char* str, int n); int _tmain(int argc, _TCHAR* argv[])原创 2014-10-28 12:33:03 · 639 阅读 · 0 评论