插入排序
int insertion_sort(int a[]) { int j, t; for (int i=2; i<=N; ++i) { j = i; while (j > 1 && a[j] < a[j - 1]) { t = a[j]; a[j] = a[j-1]; a[j-1] = t; j = j-1; } } }
About Web开发技术、算法研究
2013年1月24日 18:47
插入排序
int insertion_sort(int a[]) { int j, t; for (int i=2; i<=N; ++i) { j = i; while (j > 1 && a[j] < a[j - 1]) { t = a[j]; a[j] = a[j-1]; a[j-1] = t; j = j-1; } } }
2012年12月24日 16:47
如何实现单链表逆转,输入为一个头节点,输出一个头节点。
ListNote *listReverse(ListNote *head) { ListNote *p, *q, *r; p = head; q = p->next; if (q) r = q->next; else r = NULL; if (head || head->next) { while (r) { q->next = p; p = q; q = r; r = r->next; } q->next = p; head->next = NULL; } return q; }
如何去除链表中重复的元素,不许使用额外空间?
ListNote *removeDupList(ListNote *head) { //q: the current node, p: the running node, r: the previous node ListNote *p, *q, *r; q = head->next; r = head; bool flag; while (q) { p = head; flag = false; while (p != q) { if (p->data == q->data) { flag = true; break; } p = p->next; } if (flag) { free(r->next); r->next = q->next; } else { r = r->next; } q = q->next; } }
2012年11月14日 02:22
Implement an algorithm to determine if a string has all unique characters What if you can not use additional data structures?
如何判断字符串中是否有重复的字符?
bool isUniqueChar(string s) { bool h[256]={0}; for (int i=0; i<=s.size()-1; ++i) { if (h[s[i]]) return false; h[s[i]] = 1; } return true; }
如何将C的字符数组(char *)逆转?
Write code to reverse a C-Style String (C-String means that “abcd” is represented as five characters, including the null character )
void cStringReverse(char *s) { char *end = s; char tmp; if (s) { while (*end) ++end; --end; while (s < end) { *s++ = *end--; } } }
如何将字符数组重复的字符去除?不允许使用额外的存储空间。
Design an algorithm and write code to remove the duplicate characters in a string without using any additional buffer. NOTE: One or two additional variables are fine. An extra copy of the array is not.
void removeDuplicateChar(char *s) { char *end = s+1; char *p = s+1; if (s) { while (*p) { char *q = s; while (q < p) { if (*p == *q) { break; } ++q; } if (p == q) { *end = *p; ++end; } ++p; } *end = '\0'; } }