當前位置:首頁 » 操作系統 » 自設計演算法

自設計演算法

發布時間: 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的因數即可。

熱點內容
iis7匿名訪問 發布:2025-07-04 05:53:33 瀏覽:315
ftp伺服器被動模式配置 發布:2025-07-04 05:17:32 瀏覽:333
電動車小龜有哪些配置 發布:2025-07-04 05:16:18 瀏覽:41
mysql同步存儲過程 發布:2025-07-04 05:14:32 瀏覽:664
安卓手機如何控制空調 發布:2025-07-04 05:09:06 瀏覽:156
新潔爾滅用於物體表面怎麼配置 發布:2025-07-04 05:03:28 瀏覽:831
生活中的雲伺服器 發布:2025-07-04 05:01:55 瀏覽:746
三星g6700c原始密碼是多少 發布:2025-07-04 04:49:41 瀏覽:726
網頁編程代碼 發布:2025-07-04 04:47:25 瀏覽:805
發消息時用到什麼密碼 發布:2025-07-04 04:41:47 瀏覽:980