- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 编程之美4.10 数字哑谜和回文
//回溯算法int FindTheNumber(){ int solution[10]; memset(solution, 0, 10*sizeof(int)); bool used[10]; memset(used,false,10*sizeof(bool)); int num = 0; int k = 1; while(k >= 1) { if(solution[k]
2014-07-15 23:48:25 813
原创 链表的快速排序(递归,交换节点数据)
struct ListNode { int val; ListNode *next; ListNode(int x = 0) : val(x), next(NULL) {}};void QuickSortCore(ListNode* pBegin, ListNode* pEnd);ListNode* partition(ListNode* pBegin, ListNode* pEnd)
2014-07-15 21:51:03 485
原创 数组的快速排序(使用栈的非递归实现)
void QuickSortCore(int* data, int first, int last);int partition(int* data, int first, int last);void QuickSort(int* data, int length){ if(data == NULL || length <= 0) return; QuickSortCore(data,
2014-07-15 16:54:51 2528 1
原创 数组的快速排序(递归,需要隐性栈空间)
void QuickSortCore(int* data, int first, int last);int partition(int* data, int first, int last);void QuickSort(int* data, int length){ if(data == NULL || length <= 0) return; QuickSortCore(data,
2014-07-15 16:06:23 527
原创 链表的归并排序(经典实现:递归)
ListNode* MergeSort(ListNode* head) { if(head == NULL || head->next == NULL) return head; ListNode *head1 = head, *head2 = head; while(head2->next != NULL && head2->next->next != NULL) {
2014-07-14 00:10:37 696
原创 数组的归并排序(不使用辅助空间,循环)
//data[begin,mid)和data[mid,end)两部分交换位置 void RingShift(int* data, int begin, int mid, int end);void MergeSort(int* data, int length){ if(data == NULL || length <= 0) return; //steps为步长,将data[]分
2014-07-13 09:39:59 3691
原创 数组的归并排序(使用Ο(n)的辅助空间,循环)
void MergeSort(int* data, int length){ if(data == NULL || length <= 0) return; int *copy = new int[length]; int* arr[2] = {data, copy}; int cur = 0; //steps为步长,将arr[cur]分组,每组steps个,然后两两merge到a
2014-07-13 00:38:00 654
原创 数组的归并排序(不使用辅助空间,递归)
void MergeSortCore(int* data, int first, int last);void RingShift(int* data, int begin, int mid, int end);void MergeSort(int* data, int length){ if(data == NULL || length <= 0) return; MergeSort
2014-07-12 13:50:18 1692
原创 数组的归并排序(经典实现:使用Ο(n)的辅助空间,递归)
void MergeSortCore(int* data, int* copy, int first, int last);void MergeSort(int* data, int length){ if(data == NULL || length <= 0) return; int* copy = new int[length]; for(int i = 0; i < lengt
2014-07-12 11:23:04 740
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人