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

摘要:1:需求已知数组int[] max={72, 54, 59, 30, 31, 78, 2, 77, 82, 72};用快速排序算法按降序对其进行排列,并返回数组。思路:快速排序有两个方向,左边的i下标一直往右走,当a[i] <= a[center_index],其中center_index是中枢元素的数组下标,一般取为数组第0个元素。而右边的j下标一直往左走,当a[j] > a[center_index]。如果i和j都走不动了,i <= j, 交换a[i]和a[j],重复上面的过程,直到i>j。 交换a[j]和a[center_index],完成一趟快速排序。在中枢元素 阅读全文
posted @ 2012-07-18 10:27 陆敏技 阅读(1326) 评论(0) 推荐(0) 编辑
摘要:1:原理选择排序是从冒泡排序演化而来的,每一轮比较得出最小的那个值,然后依次和每轮比较的第一个值进行交换。 目的:按从小到大排序。 方法:假设存在数组:72, 54, 59, 30, 31, 78, 2, 77, 82, 72 第一轮依次比较相邻两个元素,将最小的一个元素的索引和值记录下来,然后和第一个元素进行交换。 如上面的数组中,首先比较的是72,54,记录比较小的索引是54的索引1。接着比较54和59,比较小的索引还是1。直到最后得到最小的索引是2的索引6,然后索引6和0互相交换。 第二轮比较的时候是最小的一个元素和索引1进行交换。第三轮、第四轮以此类推。 2:代码 class P... 阅读全文
posted @ 2011-08-18 16:40 陆敏技 阅读(4755) 评论(0) 推荐(0) 编辑
摘要:1:原理以此比较相邻的两个元素,每次比较完毕最大的一个字跑到本轮的末尾。 目的:按从小到大排序。 方法: 假设存在数组:72, 54, 59, 30, 31, 78, 2, 77, 82, 72 第一轮比较相邻两个元素,如果左边元素大于右边元素,则交换。 72和54比较的结果就是,54在前,72在后... 阅读全文
posted @ 2011-08-18 11:14 陆敏技 阅读(31664) 评论(7) 推荐(4) 编辑
摘要:递归的C#实现1:计算数组{1,1,2,3,5,8.......} 第30位值class Program { staticvoid Main(string[] args) { Console.WriteLine(Method1(0)); Console.WriteLine(Method1(1)); Console.WriteLine(Method1(2)); Console.WriteLine(Method1(3)); Console.WriteLin... 阅读全文
posted @ 2011-08-18 11:02 陆敏技 阅读(914) 评论(1) 推荐(0) 编辑
摘要:要选择正确的集合,我们首先要了解一些数据结构的知识。所谓数据结构,就是相互之间存在一种或多种特定关系的数据元素的集合。结合下图,我们看一下对集合的分类。 集合分类 在上图中,可以看到,集合总体上分为线性集合和非线性集合。线性集合指元素具有唯一的前驱和后驱的数据结构类型。非线性集合是指具有多个前驱或后驱的数据结构类型,如:树、图。在FCL中,非线性集合实现的比较少,所以我们将会更多的讨论线性集合。... 阅读全文
posted @ 2011-03-24 09:12 陆敏技 阅读(13748) 评论(23) 推荐(24) 编辑

Web Counter
Coupon for Contacts