摘要:
1.核心思想:希尔排序是插入排序的一种,是直接插入排序的一种改进版本,他们同属于插入排序类。这是一个不稳定的排序算法。采取跳跃分割的策略:将相距某个“增量”的记录组成一个子序列,这样才能保证在子序列内分别进行直接插入排序后得到的结果是基本有序而不是局部有序。2.代码实现: 3.稳定性分析:一次插入排 阅读全文
摘要:
1 #include 2 using namespace std; 3 4 int BinarySearch(int arr[],int begin,int end,int num) 5 { 6 if(arr == NULL || begin = end) return -1; 7 8 int mid = (begin+end)/2; 9 if(ar... 阅读全文
摘要:
1 #include 2 using namespace std; 3 4 typedef struct Node 5 { 6 int num; 7 Node* pNext; 8 }Stack,Queue; 9 10 //栈的入栈相当于 链表的头插 11 Stack* stack_push(Stack** pTop,int num) 12 { 13 ... 阅读全文
摘要:
1 #include 2 using namespace std; 3 4 void ChangeSpace(char* buf,int len) 5 { 6 if(buf == NULL || len =0;i--) 16 { 17 if(buf[i] != ' ') 18 buf[i+2*count] = buf[i]; ... 阅读全文
摘要:
1 #include<iostream> 2 using namespace std; 3 4 struct Node 5 { 6 int n; 7 Node* pNext; 8 }; 9 10 Node* AddNode(Node** pHead,Node* pNode) 11 { 12 if(( 阅读全文
摘要:
1 #include 2 using namespace std; 3 4 bool FindNum(int arr[][5],int rows,int cols,int num) 5 { 6 if(arr == NULL || rows =0&&col arr[row][col]) 16 { 17 col ++; 18 ... 阅读全文
摘要:
1 #include 2 using namespace std; 3 4 struct Node 5 { 6 int n; 7 Node* pNext; 8 }; 9 10 Node* AddNode(Node** pHead,Node* pNode) 11 { 12 if((*pHead) == NULL) 13 ... 阅读全文
摘要:
代码实现: 阅读全文
摘要:
1.核心思想:将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数+1的有序表。2.代码实现: 3.复杂度分析:直接插入排序在某些时候效率是很高的,如记录本身就是基本有序的,我们只需要少量的插入操作,就可以完成整个记录的排序工作,此时直接插入很高效。还有就是记录数比较少的时候,直接插入的优 阅读全文
摘要:
1.基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。2.代码实现: 阅读全文