随笔分类 -  数据结构,算法

摘要:面试例题:输入n,求一个nXn矩阵,规定矩阵沿45度递增,形成一个zigzag数组(JPEG编码里取像素数据的排列顺序),请问如何用C++实现?(中国台湾著名硬件公司2007年11月面试题)(自程序员面试宝典第二版p89)程序实现如下:分析:例如输入为8的时候得到的zigzag数组为:从上面的标记的方向应该可以看到,这个数组就是按照对角规律进行的,那么我在写程序的时候,会用一个两层的for来填充这个数组。为了从这个规律入手,我们在考虑这个数据的填充是要理清一个思路,不要按那两层的for循环考虑,只需要考虑第(i,j)位置与(i,j)的关系就OK了,那么对应的填充函数就填充相应的(i,j)的函数 阅读全文
posted @ 2013-08-18 17:04 凡程子 阅读(2857) 评论(0) 推荐(0) 编辑
摘要:接上文--->【每日算法】C语言8大经典排序算法(1)二、插入类排序 插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。 插入排序一般意义上有两种:直接插入排序和希尔排序,下面分别介绍。3、直接插入排序基本思想:最基本的操作是将第i个记录插入到前面i-1个以排好序列的记录中。具体过程是:将第i个记录的关键字K依次与其前面的i-1个已经拍好序列的记录进行比较。将所有大于K的记录依次向后移动一个位置,直到遇到一个关键字小于或等于K的记录,此时它后面的位置必定为空,则将K插入。图示:C 阅读全文
posted @ 2013-01-25 13:30 凡程子 阅读(17518) 评论(5) 推荐(5) 编辑
摘要:算法一直是编程的基础,而排序算法是学习算法的开始,排序也是数据处理的重要内容。所谓排序是指将一个无序列整理成按非递减顺序排列的有序序列。排列的方法有很多,根据待排序序列的规模以及对数据的处理的要求,可以采用不同的排序方法。那么就整理下网上搜索的资料,按自己的理解,把C语言的8大排序算法列出来。普通意义上,排序算法可以分为三大类:1 交换类排序法2 插入类排序法3选择类排序法一.交换类排序法所谓交换排序法是指借助数据元素之间互相交换进行排序的方法。冒泡排序与快速排序法都属于交换类排序方法。1、冒泡排序(BubbleSort)冒泡排序的基本概念:依次比较相邻的两个数,将小数放在前面,大数放在后面。 阅读全文
posted @ 2013-01-18 22:48 凡程子 阅读(77546) 评论(5) 推荐(4) 编辑

View Code