当前位置:首页 » 操作系统 » 自设计算法

自设计算法

发布时间: 2025-07-02 16:48:19

A. 请哥哥姐姐为我设计个简单的快速排序算法,C语言的,谢谢啦!

void QuickSort(int *a,int left,int right)
{
if ( left < right )
{
int i = left;
int j = right + 1;//why add 1?
int pivot = a[left];//youbiao
do
{
do
{
i++;//the second
} while ( a[i] < pivot );
do
{
j--;
} while ( a[j] > pivot );
if ( i < j )
{
swap(a[i],a[j]);
}
} while ( i < j );
if (left != j)
{
swap(a[left],a[j]);
}
//digui
QuickSort(a,left,j-1);
QuickSort(a,j+1,right);
}
}
//测试排序代码
void print(int *a,int n)
{
int i;
for ( i = 0 ; i < n ; i++ )
{
printf("%d ",a[i]);
}
printf("\n");
}

int main()
{
int a[20];
myrand(a,20);
QuickSort(a,0,19);
print(a,20);
return 0 ;
}

呵呵 有问题再联系。。。。

B. 设计一个算法求出500的所有因数。

1、用筛法找质数
筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛法(sieve of Eratosthenes)。
具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。c这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛法”,简称“筛法”。(另一种解释是当时的数写在纸草上,每要划去一个数,就把这个数挖去,寻求质数的工作完毕后,这许多小洞就像一个筛子。)
例如,用筛法找出不超过30的一切质数:
不超过30的质数2,3,5,7,11,13,17,19,23,29共10个。

2、求因数
任意给定一个大于一的整数n,只要把小于等于根号n的所有质数都找到,分别确定这些质数是否为整数n的因数即可。

热点内容
家用电脑和网吧电脑做成服务器 发布:2025-07-03 18:22:07 浏览:855
jsp刷新缓存 发布:2025-07-03 18:18:06 浏览:923
机房服务器启动不起来是什么原因 发布:2025-07-03 18:18:02 浏览:444
脚本召唤坐骑攻略 发布:2025-07-03 18:17:59 浏览:229
皓影智享加装哪些配置好 发布:2025-07-03 17:54:44 浏览:615
mongodbjava 发布:2025-07-03 17:54:31 浏览:99
外键约束sql语句 发布:2025-07-03 17:51:04 浏览:456
struts2上传文件大小限制 发布:2025-07-03 17:51:01 浏览:521
奔驰导航什么配置 发布:2025-07-03 17:46:42 浏览:743
服务器2012r2远程服务怎么开启 发布:2025-07-03 17:46:01 浏览:455