上一页 1 2 3 4 5 6 7 8 9 10 ··· 19 下一页
摘要: 1、试写一算法在带头结点的单链表结构上实现线性表操作Locate(L,x)2、试写一算法在带头结点的单链表结构上实现线性表操作Length(L)#include #include #define ERROR 0 #define OK 1 #define OVERFLOW -1 #define TRUE 1 typedef int Status; struct LNode { int data; LNode *next; }; typedef LNode *LinkList; void InitList(LinkList &L) { L=(LinkList)ma... 阅读全文
posted @ 2013-08-05 20:05 cpoint 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。#include #include #define LIST_INIT_SIZE 10 #define LIST_INCREMENT 2 #define ERROR 0 #define OK 1 #define OVERFLOW -1 #define TRUE 1 typedef int Status; struct SqList { int *elem; int length; int listsize; }; void InitList(SqList &L) { ... 阅读全文
posted @ 2013-08-05 20:03 cpoint 阅读(343) 评论(0) 推荐(0) 编辑
摘要: Gnome排序(地精排序),起初由Hamid Sarbazi-Azad于2000年提出,并被称为stupid排序,后来被Dick Grune描述并命名为“地精排序”,作为一个排序算法,和插入排序类似,除了移动一个元素到最终的位置,是通过交换一系列的元素实现,就像冒泡排序一样。概念上十分简单,不需要嵌套循环。时间复杂度为O,但是如果初始数列基本有序,时间复杂度将降为O(n)。实际上Gnome算法可以和插入排序算法一样快。平均运行时间为O.Gnome排序算法总是查找最开始逆序的一对相邻数,并交换位置,基于交换两元素后将引入一个新的相邻逆序对,并没有假定当前位置之后的元素已经有序Descriptio 阅读全文
posted @ 2013-08-03 23:02 cpoint 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。C语言实现 1 #include 2 #include ... 阅读全文
posted @ 2013-08-02 18:42 cpoint 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 在计算机科学中,Bogo排序(bogo-sort)是个既不实用又原始的排序算法,其原理等同将一堆卡片抛起,落在桌上后检查卡片是否已整齐排列好,若非就再抛一次。其名字源自Quantum bogodynamics,又称bozo sort、blort sort或猴子排序.实现以下是C代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 void swap(int *a, int *b) //交换两元素的值10 {11 int t;12 t... 阅读全文
posted @ 2013-08-02 18:36 cpoint 阅读(3129) 评论(0) 推荐(0) 编辑
摘要: 1.基本函数在C语言中取随机数所需要的函数是:int rand(void);void srand(unsigned int n);rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件: #include2.使用方法 rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大。 srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我. 阅读全文
posted @ 2013-08-02 17:22 cpoint 阅读(1339) 评论(0) 推荐(0) 编辑
摘要: Stooge排序是一种低效的递归排序算法,甚至慢于冒泡排序。在《算法导论》第二版第7章(快速排序)的思考题中被提到,是由Howard、Fine等教授提出的所谓“漂亮的”排序算法。实现如果最后一个值小于第一个值,则交换它们如果当前子集元素数量大于等于3:使用Stooge排序前2/3的元素使用Stooge排序后2/3的元素再次使用Stooge排序前2/3的元素#include #include #include #include #include void swap(int *a, int *b) //交换两元素的值{ int t; t=*a; *a=*b... 阅读全文
posted @ 2013-08-02 12:56 cpoint 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。算法快速排序采用一种“分而治之、各个击破”的观念。快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。步骤为:从数列中挑出一个元素,称为 "基准"(pivot),重新排序数列,所有元素比基准值小的摆放在基准 阅读全文
posted @ 2013-08-02 12:05 cpoint 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 梳排序(Comb sort)是一种由Wlodzimierz Dobosiewicz于1980年所发明的不稳定排序算法,并由Stephen Lacey和Richard Box于1991年四月号的Byte杂志中推广。梳排序是改良自泡沫排序和快速排序,其要旨在于消除乌龟,亦即在阵列尾部的小数值,这些数值是造成泡沫排序缓慢的主因。相对地,兔子,亦即在阵列前端的大数值,不影响泡沫排序的效能。在泡沫排序中,只比较阵列中相邻的二项,即比较的二项的间距(Gap)是1,梳排序提出此间距其实可大于1,改自插入排序的希尔排序同样提出相同观点。梳排序中,开始时的间距设定为阵列长度,并在循环中以固定比率递减,通常递减率 阅读全文
posted @ 2013-08-02 11:17 cpoint 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 鸡尾酒排序,也就是定向冒泡排序,鸡尾酒搅拌排序,搅拌排序(也可以视作选择排序的一种变形),涟漪排序,来回排序or快乐小时排序, 是冒泡排序的一种变形。此算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。C代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 void swap(int *a, int *b) //交换两元素的值 8 { 9 int t;10 t=*a;11 *a=*b;12 *b=t;13 }14 15 void printAr... 阅读全文
posted @ 2013-08-01 23:39 cpoint 阅读(304) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 19 下一页
浏览次数:travelocity promotion codes