CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

求解算法

楼主bwmwm()2005-12-10 20:17:28 在 C/C++ / C语言 提问

对N个关键字取整数值的记录序列进行整理,以使所有关键字为负值的记录排在关键字为非负值的记录前面,要求:  
  (1)采用顺序存储结构,至多使用一个记录的辅助存储空间;  
  (2)算法的时间复杂度为O(N).  
  各位帮帮小弟的忙,谢谢。 问题点数:40、回复次数:4Top

1 楼happydivid(泓笑)回复于 2005-12-10 21:16:59 得分 30

int   array[]={};  
  int   length=strlen(array);  
  int   index=length;  
  int   temp;  
  for   (int   i=0;   i<length;   i++   )   {  
  if   (   array[i]<0   )   {  
  temp=array[i];  
  array[i]=array[length-index];  
  array[length-index]=temp;  
  index--;  
  }  
  }Top

2 楼happydivid(泓笑)回复于 2005-12-10 21:17:38 得分 0

如果不要求按大小排序的话,我的代码应该可以满足楼主的要求  
  Top

3 楼cunsh(村少)回复于 2005-12-10 21:39:42 得分 10

#include   "iostream"  
  using   namespace   std;  
  int   main(int   argc,   char*   argv[])  
  {  
  int   a[]={-1,3,5,-2,3,-1,3,33,-1};  
   
   
  int   len   =   sizeof(a)/sizeof(a[0]);  
  int   *   p1   =   a;  
  int   *   p2   =   a   +   len   -1;  
  while(   p1<p2)  
  {  
  while(*p1   <   0)   p1++;  
  while(*p2   >   0)   p2--;  
  if(p1<p2)swap(*p1   ,*p2);  
  }  
   
  for(int   i=0;   i<len;   i++)  
  cout   <<   a[i]   <<   endl;  
  }Top

4 楼bwmwm()回复于 2005-12-10 21:42:08 得分 0

可以满足要求了,谢谢大哥!我给分了。Top

相关问题

  • 算法求解
  • 求解算法,急
  • 求解一算法
  • 求解一算法
  • 魔方算法求解?
  • 求解一算法难题!
  • 高分求解算法
  • 求解发牌算法!
  • 逆波兰算法求解!!
  • 求解八皇后算法?

关键词

  • 算法
  • 关键字
  • 记录
  • 存储
  • array
  • length

得分解答快速导航

  • 帖主:bwmwm
  • happydivid
  • cunsh

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo