| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1008 人关注过本帖
标题:问个问题..
只看楼主 加入收藏
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
 问题点数:0 回复次数:23 
问个问题..

一个for和两个for的排序..时间复杂度会一样?

先回答..然后我再给程序.大家看!

搜索更多相关主题的帖子: 时间 
2006-08-27 22:10
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
一个for
===========
???????????????????

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-27 22:16
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
#include<stdio.h>
#define SIZE 10
void sort(int *a,int n)
{
for(int i=0,fi=0,se=n>3?n-1:n-2;i<n;i++)
{
if(i!=fi&&a[i]%2==0){int tem=a[se];a[se]=a[i],a[i]=tem,se--;}
if(i!=se&&a[i]%2==1){int tem=a[fi];a[fi]=a[i],a[i]=tem,fi++;}
}
}
int main()
{
int a[SIZE]={1,2,3,4,5,6,7,8,9,10};
sort(a,SIZE);
for(int i=0;i<SIZE;i++)
printf("%d ",a[i]);
}

[此贴子已经被作者于2006-8-28 7:11:34编辑过]


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-27 22:23
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
int sort(int a[],int len)
{
int i=0,j=len-1,temp;
for(;i<j;i++)
{
if(!(a[i]%2))
{
temp=a[i];
for(;j>0;j--)
if(a[j]%2) {a[i]=a[j],a[j]=temp,j--;break;}
}
}
}

这两个哪个时间复杂度大?

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-27 22:23
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
题目是 一个数组 把奇数排到前面.把偶数排到后面

然后输出!

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-27 22:25
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
我跟他的赌注,1000块呢,大家支持我啊,我给你们分成。

对不礼貌的女生收钱......
2006-08-27 22:27
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
你们在做什么?

淘宝杜琨
2006-08-27 22:50
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

赌博呢,他非说他两个for的时间复杂度和我一个for的时间复杂度是一样的

虽然怎么算时间复杂度我忘了很久了...不过....小神..你说说看!


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-27 22:51
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
一个for的时间复杂度 kuai

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-27 22:54
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 
[CODE]#include<cstdio>

void Swap(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}

void sort(int a[], int size)
{
int lower = 0, upper = size;
while( lower <= upper)
{
while(lower<upper && a[lower]%2==1)
lower++;
while(lower<upper && a[upper]%2==0)
upper--;
if(lower < upper)
Swap(&a[lower++], &a[upper--]);
else
lower++;
}
}

int main()
{
int a[10]={2,1,3,9,7,8,6,3,4,0};
sort(a,10);
for(int i=0;i<10;i++)
printf("%d ",a[i]);
}[/CODE]

这个复杂度是多少,三个while





2006-08-27 23:41
快速回复:问个问题..
数据加载中...
 
   



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

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