- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序代码集合
//快速排序法
#include iostream
#include iomanip
#include time.h
#include stdlib.h
#define MIN -65536
using namespace std;
int * Create_Array (int *, int);
void Print_Array (int *, int);
void Exchange (int *, int, int);
int Partition (int *, int, int);
void Quick_Sort (int *, int, int);
int main (void)
{
int *Array = NULL;
int number;
cout 生成随机数个数: ;
cin number;
Array = Create_Array (Array, number + 1);
cout 排序前: endl;
Print_Array (Array, number + 1);
cout endl;
Quick_Sort (Array, 1, number);
cout 排序后: endl;
Print_Array (Array, number + 1);
cout endl;
return 0;
}
int * Create_Array (int *Array, int num)
{
srand ((unsigned)time (NULL));
Array = new int [num];
Array[0] = MIN;
for (int i = 1; i num; ++ i)
Array[i] = rand() % 9999 + 1;
return Array;
}
void Print_Array (int *Array, int num)
{
int count = 0;
for (int i = 1; i num; ++ i)
{
cout setw(7) Array[i];
++ count;
if (count % 10 == 0)
cout endl;
}
}
void Exchange (int *Array, int i, int j)
{
int temp;
temp = Array[i];
Array[i] = Array[j];
Array[j] = temp;
}
int Partition (int *Array, int p, int r)
{
int x = Array[r];
int i = p - 1;
int temp;
for (int j = p; j r; ++ j)
{
if (Array[j] = x)
{
++ i;
Exchange (Array, i, j);
}
}
Exchange (Array, i + 1, r);
return i + 1;
}
void Quick_Sort (int *Array, int p, int r)
{
int q;
if (p r)
{
q = Partition (Array, p, r);
Quick_Sort (Array, p, q - 1);
Quick_Sort (Array, q + 1, r);
}
}
//链表逆序输出
#include iostream
#include string
using namespace std;
struct Node
{
char name[3];
Node * next;
Node(const char* p)
{
strcpy(name,p);
next=0;
}
};
//将某个链表逆序
void ReserseList(Node * pHead, Node * pTail)
{
Node *p1=pHead;
if(p1==0) //首指针为空,表示空链表
{
pTail=0;
return;
}
Node *p2=p1-next;
if(p2==0) //首指针的下一个节点为空,表示只有一个节点
{
pTail=0;
return;
}
//至少有两个不为空的节点
Node *p3=0;
while(p2!=0)
{
p3=p2-next;
p2-next=p1;
p1=p2;
p
文档评论(0)