
data structure and algorithm
夏日微风SummerBreeze
我是一只小企鹅 寒冷造就我的坚强
展开
-
排序2-快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速转载 2014-06-03 12:45:40 · 558 阅读 · 0 评论 -
排序3-直接插入排序
直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=12. 将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。转载 2014-06-03 13:06:05 · 531 阅读 · 0 评论 -
字符串匹配 KMP 算法
作者:July。出处:http://blog.youkuaiyun.com/v_JULY_v/。引记 此前一天,一位MS的朋友邀我一起去与他讨论快速排序,红黑树,字典树,B树、后缀树,包括KMP算法,唯独在讲解KMP算法的时候,言语磕磕碰碰,我想,原因有二:1、博客内的东西不常回顾,忘了不少;2、便是我对KMP算法的理解还不够彻底,自不用说讲解自如,运用自如了。所以,特再写本篇文转载 2014-06-03 14:57:50 · 603 阅读 · 0 评论 -
判断闰年
闰年的定义:111闰年的cyu#include int main(){ int y; printf("请输入年份,回车结束\n"); scanf("%d",&y); if((y%4 == 0 && y%100 != 0) || y%400 == 0) { printf("%d是闰年",y); } else原创 2014-06-04 12:47:31 · 557 阅读 · 0 评论 -
字符串匹配 之 KMP算法
原文地址:字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt 算法(简称 KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家 Donald Knuth。转载 2014-07-04 11:08:20 · 409 阅读 · 0 评论 -
最长公共子序列(LCS)问题
0、前言 程序员编程艺术系列重新开始创作了(前十章,请参考程序员编程艺术第一~十章集锦与总结)。回顾之前的前十章,有些代码是值得商榷的,因当时的代码只顾阐述算法的原理或思想,所以,很多的与代码规范相关的问题都未能做到完美。日后,会着力修缮之。 搜遍网上,讲解这个LCS问题的文章不计其数,但大多给读者一种并不友好的感觉,稍感晦涩,且代码也不够清晰。本文力图避免此些情况。力转载 2014-06-03 16:03:07 · 670 阅读 · 0 评论 -
排序1-冒泡排序
// 排序算法1 冒泡排序void bubble_sort(int arr[],int length){/** 两层循环实现,内循环每次从i--(length-1)的元素中找出最小的元素* 每经过一次外循环便有一个最小元素(i--(length-1))浮出*/ int min = arr[0];int index = -1;int bSwap = fal转载 2014-05-30 16:27:45 · 502 阅读 · 0 评论 -
快速排序算法
void quickSort(int s[], int l, int r) { if (l { int i = l, j = r, x = s[l]; while (i { while(i = x) // 从右向左找第一个小于x的数原创 2016-03-21 20:59:43 · 485 阅读 · 0 评论