| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4161 人关注过本帖
标题:请教C语言代码转为C#语言
取消只看楼主 加入收藏
ppppooiiuu
Rank: 1
等 级:新手上路
帖 子:158
专家分:0
注 册:2016-3-2
结帖率:46.15%
收藏
已结贴  问题点数:20 回复次数:3 
请教C语言代码转为C#语言
我学的是C#语言,在网上查到一个排序可能不错,请大家帮忙把C语言转为C#语言,谢谢!
程序代码:
#include"stdio.h"
void main()
{
int i,j,p,t,k,temp,n=10,max;
int a[10]={99,45,9,75,78,42,48,66,70,17};
int b[10],d[10];
int c[10];
for(i=0;i<n;i++)
   c[i]=0;
for(i=0;i<n;i++)
  b[i]=a[i];            //拷贝中间数组
t=n;
while(t)                      //n趟记序排序
{
  i=p=t;
  k=1;
  for(i=0;i<t;i++)
    d[i]=i;       //分配数组元素初始序号
  while(i)
  {
    i=i/2;
    k=2*k;
  }
  k=k/2;                
  while(k)               //logn次稍大数比较
  {
    for(i=0,j=p-1;i<k;i++,j--)
  {
     if(b[i]>b[j])
    { 
     c[i]=d[i];
    }
  else
    {
    c[i]=d[j];
    }
  }
for(j=0;j<k;j++)                            //记住元素的序号
    {
      i=c[j];
      b[j]=a[i];
    }
for(j=0;j<k;j++)
    {
      d[j]=c[j];
    }
k=k/2;
p=(p+1)/2;
  }
max=c[0];
if(a[max]>a[t-1])                     //将最大元素放入序列最后
{
temp=a[max];
a[max]=a[t-1];
a[t-1]=temp;
}
for(i=0;i<n;i++)
    b[i]=a[i];
t--;
}
for(i=0;i<n;i++)
  printf("%d,",a[i]);
}

搜索更多相关主题的帖子: include C语言 网上 
2016-03-02 20:41
ppppooiiuu
Rank: 1
等 级:新手上路
帖 子:158
专家分:0
注 册:2016-3-2
收藏
得分:0 
回复 2楼 qq1023569223
谢谢你了!
可能是源码的问题吧,小数据正确,大数据就错了。。。
请问你知道有啥排序方法快,又易懂的吗?
谢谢帮忙了!

[此贴子已经被作者于2016-3-3 02:17编辑过]

2016-03-03 02:08
ppppooiiuu
Rank: 1
等 级:新手上路
帖 子:158
专家分:0
注 册:2016-3-2
收藏
得分:0 
回复 4楼 qq1023569223
确实Array.Sort()的效率很高,但是他支持的是一维,我是希望二维也可以有这么高的效率,我有查到快速排序的方法,你可以帮我大约看一下正不正确吗,这个网站上有提到他有修改过,我也不定哪个方法比较适合。。。
或者可以列一个正确的快速排序给我吗?谢谢!
以下是我搜到的排序
http://www.
2016-03-03 16:59
ppppooiiuu
Rank: 1
等 级:新手上路
帖 子:158
专家分:0
注 册:2016-3-2
收藏
得分:0 
回复 6楼 qq1023569223
谢谢
2016-03-04 13:13
快速回复:请教C语言代码转为C#语言
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049265 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved