网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月18日漏签0天
vae吧 关注:1,459,777贴子:52,563,461
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 3 下一页 尾页
  • 70回复贴,共3页
  • ,跳到 页  
<<返回vae吧
>0< 加载中...

【许嵩·海上灵光】吧里可有C语言大神???求帮忙啊~~~

  • 只看楼主
  • 收藏

  • 回复
  • 素龙人dC
  • V风八面
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不然小女子回不了家啊~~~~大神。。。快来啊。。。


  • 追逐_风尘
  • V微一笑
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
路过


2026-01-18 20:19:50
广告
不感兴趣
开通SVIP免广告
  • v控许紫韵
  • V我独尊
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你去C语言吧看看呗


  • Vae顶贴_大叔
  • V武不屈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没学
 【 挺胸膛 势如狼 一品堂 续辉煌 】


  • 送X的独白
  • V震天下
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

   --哦呵呵呵呵呵呵呵呵呵呵呵呵呵呵


  • Vae顶贴_无赖
  • V武不屈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
反正我不是语言大神
   【 挺胸膛,势如狼,一品堂,续辉煌】


  • 小耐_丶
  • V我独尊
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

在城市的尽头,看喷泉池的细水长流
   --带徒弟们混眼熟
      (轩儿 星梦 阿忆)


  • 宝锅锅7
  • V风祥麟
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

               -- ———晚风吹过俺裤裆,小弟弟硬梆梆~


2026-01-18 20:13:50
广告
不感兴趣
开通SVIP免广告
  • 宝锅锅7
  • V风祥麟
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我能说我学过嘛。。。
               -- ———晚风吹过俺裤裆,小弟弟硬梆梆~


  • 幺哇塞
  • V震天下
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
啥


  • 邓书恒的神奇月
  • V惟爱你
    16
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
。


  • 我就是小伙伴呀
  • V风凛凛
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
小伙伴表示学过 我就是小伙伴呀


  • Vae顶贴_深蓝
  • V武霸气
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
屌丝默默问一句c语言是什么?
♥♥♥♥♥♥♥深蓝♡♡♡♡♡♡♡♡
 【 挺胸膛 势如狼 一品堂 续辉煌 】
   这里小新人深蓝求眼熟求罩~


  • 素龙人dC
  • V风八面
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
各种排序算法的实现,初始数据来自随机生成或是手动输入,还有文件(我不会文件,只写了前两个),这就是题目,但是我写的有问题,麻烦楼主帮忙看看了
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100000000
void print(long R[],long n)
{for(int i=1;i<=n;i++)
printf("%4d",R[i]);}
long Bubblesort(long R[], long n)
{long y=1;
long i,BT=0;
i=n;
while(i>1){
long lastExchangeIndex=1;//表示已经有序
for(long j=1;j<i;j++)
if(R[j+1]<R[j]){
long t=R[j];
R[j]=R[j+1];
R[j+1]=t;
BT++;
lastExchangeIndex=j;//记下进行的位置}
i=lastExchangeIndex;//本趟进行过交换的最后一个记录的位置
printf("第 %d 趟:",y);
y++;
for(long x=1;x<=i;x++)
printf("%4d",R[x]);
printf("%3d[",R[i+1]);
for(x=i+2;x<=n;x++)
printf("%4d",R[x]);
printf("]");
printf("\n");}
return BT;}//冒泡排序
//static long ST=0;
long SelectMinKey(long R[],long i,long n)//在 R[i..R.length] 中选择关键字最小的记录
{long temp=i;//记录最小的元素值的位置
for(int j=i;j<=n;j++){
if(R[temp]>R[j]){
temp=j;
//ST++;}
}return temp;}
long selectsort(long R[],long n){
long j,i,t;
long y=1;
int ST=0;
for( i=1;i<n;i++)
{j = SelectMinKey(R,i,n);// 在 L.r[i..L.length] 中选择关键字最小的记录
if (i!=j) // 与第 i 个记录交换{
t=R[i];
R[i]=R[j];
R[j]=t;
ST++;}
printf("第 %d 趟:",y);
y++;
for(long x=1;x<=i;x++)
printf("%4d",R[x]);
printf("%3d[",R[i+1]);
for(x=i+2;x<=n;x++)
printf("%4d",R[x]);
printf("]");
//print(R,n);
printf("\n");}
return ST;}//选择排序
//直接插入排序
long insertsort(long R[], long n)
{long y=1;
long IT=0,j;
for(long i=2;i<=n;++i)
{if(R[i]<R[i-1]){
R[0]=R[i];//复制为哨兵
IT=IT+1;
for( j=i-1;R[0]<R[j];--j)
{R[j+1]=R[j];//记录后移
IT=IT+1;}
R[j+1]=R[0];//插入到正确位置
IT=IT+1;}
printf("第 %d 趟:",y);
y++;
printf("%4d[",R[1]);
for(long x=2;x<=i;x++)
printf("%4d",R[x]);
printf("]");
for(x=i+1;x<=n;x++)
printf("%4d",R[x]);
printf("\n");}
return IT;}//直接插入排序
//------------------------------------------------------------------------------
//快速排序
//------------------------------------------------------------------------------
static long QT=0;
int Partition (long R[], long low, long high,long n)
{
R[0] =R[low];
long pivotkey = R[low]; // 枢轴
QT=QT+2;
while (low<high)
{
while(low<high&& R[high]>=pivotkey)// 从右向左搜索
-- high;
R[low] = R[high];
QT=QT+1;
while (low<high && R[low]<=pivotkey)// 从左向右搜索
++ low;
R[high] = R[low];
}
QT=QT+1;
R[low] =R[0];
QT=QT+1;
return low;
}// Partition
void quicksort (long R[], int low, int high,long n,long y)// 对记录序列L.r[low..high]进行快速排序
{
if (low < high) // 长度大于1
{
long pivotloc = Partition(R,low,high,n);// 对 L.r[low..high] 进行一次划分
QT=QT+1;
printf("第 %d 趟:",y);
y++;
print(R,pivotloc-1);
printf("%2d[",R[pivotloc]);
printf("]");
for(long x=pivotloc+1;x<=n;x++)
printf("%5d",R[x]);
printf("\n");
quicksort(R, low, pivotloc-1,n,y); // 对低子序列递归排序
quicksort(R, pivotloc+1, high,n,y); // 对高子序列递归排序
}
} // QSort
void QuickSort(long R[],long n)
{
long y=1;
quicksort(R,1,n,n,y);
}
//------------------------------------------------------------------------------
//操作选择函数
//------------------------------------------------------------------------------
void operate(long a[], long n)
{
void main();
long * R = new long [n];
time_t start, end;//定义两个变量
double Time;//排序时间
long degree;//排序次数
char ch;
printf("请选择排序算法:\t");
scanf("%c",&ch);
switch(ch){
case '1':
{
printf("\n");
printf("\t==您选择的是冒泡排序==\n");
for(int i = 1; i <=n; i ++)//将随机数付给R[i]
{
R[i] = a[i];
}
start=(double)clock();
degree = Bubblesort(R, n);
end=(double)clock();
Time = (double)(end-start)/CLK_TCK;
//print(R,n);
printf("\n");
printf( "冒泡排序交换次数:\t",degree);
printf("\n");
operate(a, n);
break;
}
case '2':
{
printf("\n");
printf("\t==您选择的是选择排序==\n");
for(int i = 1; i <= n; i ++)
{
R[i] = a[i];
}
start=(double)clock();
degree = selectsort(R, n);
end=(double)clock();
Time = (double)(end-start)/CLK_TCK;
//print(R,n);
printf("\n");
printf("选择排序交换次数:\t",degree);
printf("\n");
operate(a, n);
break;
}
case '3':
{
printf("\n");
printf("\t==您选择的是直接插入排序==\n");
for(int i=1; i<=n; i ++)
{
R[i] = a[i];
}
start=(double)clock();
degree = insertsort(R, n);
end=(double)clock();
Time = (double)(end-start)/CLK_TCK;
//print(R,n);
printf("\n");
printf("直接插入排序交换次数: ",degree);
printf("\n");
operate(a, n);
break;
}
case '4':
{
printf("\n");
printf("\t==您选择的是快速排序==\n");
for(int i=1; i<=n; i ++)
{
R[i] = a[i];
}
start=(double)clock();
QuickSort(R, n);
end=(double)clock();
Time = (double)(end-start)/CLK_TCK;
printf("\n");
printf("\n快速排序交换次数:\t",QT);
printf("\n");
operate(a, n);
break;
}
case 'a':
{
main();
break;
}
default:
{
printf("输入错误,请选择正确的操作!\n");
operate(a, n);
break;
}
case '0':
{
printf("您已选择退出程序,谢谢使用\n");
break;
}
}
}
//------------------------------------------------------------------------------
//导航菜单函数
//------------------------------------------------------------------------------
void DaoHang()
{
printf("\n** 排序算法比较 **\n");
printf("*****************************************************\n");
printf("== 1 --- 冒泡排序 ==\n");
printf("== 2 --- 选择排序 ==\n");
printf("== 3 --- 直接插入排序 ==\n");
printf("== 4 --- 快速排序 ==\n");
printf("== 0 --- 退出程序 ==\n");
printf("== a --- 改变随机数的个数 ==\n");
printf("*****************************************************\n");
}
//--------------------------------------------------------------------------------
//随机输入函数
//--------------------------------------------------------------------------------
void Rand()
{
printf("\n请输入要产生的随机数的个数(0<=n<=100000000):\n");
long int n;
scanf("%d",&n);
printf("\n");
long *a = new long [n];
srand((unsigned long)time(NULL));//产生一个以当前时间开始的随机种子
for (long i=1; i<=n; i++)
{
a[i] = rand() % n;//n为最大值,其随机域为0~n-1
}
DaoHang();
print(a,n);
operate(a, n);
}
//--------------------------------------------------------------------------------
//手动输入函数
//--------------------------------------------------------------------------------
void HandInput()
{
printf("请输入数据个数:\n");
int n;
printf("n=");
scanf("%d",&n);
printf("\n");
long *a = new long [n];
for (long i=1; i<=n; i++)
{
scanf("%d",&a[i]);
}
DaoHang();
operate(a, n);
}
//------------------------------------------------------------------------------
//主函数
//------------------------------------------------------------------------------
void main()
{
printf("手动输入请按 1 ,随机输入请按 2\n ");
int x;
scanf("%d",&x);
switch(x)
{
case 2:{
Rand();
break;
}
case 1:{
HandInput();
break;
}
default:
printf("输入错误,请重新输入!\n");
}
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 下一页 尾页
  • 70回复贴,共3页
  • ,跳到 页  
<<返回vae吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示