急求一道c语言编程的答案!!时间急迫!!快快!!

2025-03-01 03:57:52
推荐回答(4个)
回答1:

#include
#include
#include
using namespace std;
const int MAX_SIZE=100;
void partition1(int A[],int n,int first,int last,int &mid)//划分
{
int i=first,j=last,x=A[i];
while(i {
while(i j--;
if(i {
A[i]=A[j];i++;
}
while(i i++;
if(i {
A[j]=A[i];
j--;
}
}
A[i]=x;
mid=i;
}
void partition2(int A[],int n,int first,int last,int &mid)//划分
{
int i=first,j=last,x=A[i];
while(i {
while(i j--;
if(i {
A[i]=A[j];i++;
}
while(i i++;
if(i {
A[j]=A[i];
j--;
}
}
A[i]=x;
mid=i;
}
void QuickSort(int A[],int n,int first,int last)//快速排序
{
int middle;
if(first {
partition1(A,n,first,last,middle);
partition2(A,n,middle+1,last,middle);
}
}
void display(int A[],int n)
{
int i=0;
for(i=0;i cout< cout<}
int main()
{
int array[MAX_SIZE],i=0,n=1;
srand(time(0));
cout<<"提示:本程序是将一个整型数组调整为这样的数组:所有3的倍数在左边,所有除以 "< cout<<"3余1的数放在中间,而所有除以3余2的数放在最右边.要求算法的时间尽可能少. "< cout< cin>>n;
for(i=0;i array[i]=rand()%n;
cout<<"排序前:"< display(array,MAX_SIZE);
QuickSort(array,MAX_SIZE,0,MAX_SIZE-1);
cout<<"排序后:"< display(array,MAX_SIZE);
system("PAUSE");
return 0;
}
快速排序

回答2:

4. 常用算法演示程序
题目:编写常用算法的演示程序
参考:下面算法选择一种实现
矩阵旋转算法
Prim算法
拷贝链表的O(n)算法
随机算法
大数阶乘源码
格雷码算法
算术表达式的计算
寻找链表中间节点算法
模式匹配的KMP算法
最小堆/哈希表/二叉树/平衡二叉树/红黑树
最小生成树
Kruskal算法:(贪心)
最短路径Dijkstra 算法

回答3:

问问题的该不会是。。。。xgd的吧。。。
你够可以的~~~不想自己做还搜难度系数最大的。。。

自己做个数学型的就行了呗。。那些里有特简单的。

回答4:

第八个是最简单的,看看书呗~唉数据结构重修- -