當前位置:首頁 » 操作系統 » 排序演算法偽代碼

排序演算法偽代碼

發布時間: 2022-08-22 08:05:14

㈠ 求冒泡排序的全中文的偽代碼

偽代碼啊,還真不好描述:
假設有N個數,可以想像成所有的數分成兩部分:上部和下部,上部的是排好序的,下部的沒有。

外層循環N-1次(i從0到N-2){ //每循環一次就能讓一個下部數中最大的冒到上部來
內層循環從0開始,循環到j(j=N-i){ //保證下部的每個位置都進行一次冒泡判斷
如果當前的數比它上面的一個數大,就互換位置(冒上來一次)。
/* 這是互換代碼
if(array[j]>array[j+1])
{
int tmp=array[j];
array[j]=array[j+1];
array[j+1]=tmp;
}
*/
//可以想像,如果足夠大,該數會一直更新位置,一直往上冒,到達合適位置。
}
}

外層循環結束後就排好序了。
這個演算法的特點就是如果一個數是下部中最大的,它就能一直往上冒,不管它當初在什麼位置,內層一輪冒泡後它就能冒到上部去(成為上部里最小的)。N-1輪後就排好序了。

描述的不怎麼好,還寫不出來的話可以直接要代碼(猜你是想自己寫出來所以沒貼代碼)

㈡ 用偽代碼寫出使用子演算法的冒泡排序演算法,子演算法是在未排序子表中做冒泡工作

#include 「stdio.h」
#define N 10
main( )
{ int a[N+1];
int i,j,t;
for(i=1;i<=N;i++)
scanf(「%d」,&a[i]);
printf(「\n」);
for(j=1;j<N;j++)
for(i=1;i<N-j;i++)
if(a[i]>a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf(「the sorted numbers:\n」);
for(i=1;i<=N;i++)
printf(「%4d」,a[i]);
}

㈢ 我研究出一種新排序演算法

我欣賞你的演算法!孩子,相信自己,有朝一日你會成功的!不要聽他們對你的評論,她們只是嫉妒你的才華!任何一個思想,都有一個微不足道的開端!

㈣ 區間排序演算法的實現,代碼C++,排序演算法的問題

這不就類似於桶排序么,只不過桶的大小為序列的最大值減去最小值+1而已。

偽代碼如下:

voidbucketsort(int*Input,intlen)
{
intu,w;
u=mininInput;
w=maxinInput;
int*bucket=newint[w-u+1];
for(inti=0;i<w-u+1;i++)
bucket[i]=0;
for(inti=0;i<len;i++)
bucket[Input[i]-u]++;
//printresult;
for(inti=0;i<w-u+1;i++)
while(bucket[i])
{
cout<<bucket[i]+u<<endl;
bucket[i]--;
}

㈤ 幫忙解釋一下這段分治法的偽代碼,或者翻譯成python代碼!

這是將一個數組A中A[p]到A[q]分成數組L,A[q+1]到A[r]分成數組R,然後再按從小到大的順序重新排序合並起來。前提是A[p到q]和A[q+1到r]已經按重小到大順序排好,不然這個函數沒有意義。它是merge sort排序演算法的一部分,先把數組分成兩半,分別排序,在合並起來。比如說數組已經對前半部分和後半部分完成排序[3,2,5,1,6,4]-->[2,3,5,1,4,6]。通過MERGE函數分成[2,3,5]和[1,4,6].然後組合成[1,2,3,4,5,6]

㈥ 編寫偽代碼演算法,讀入用戶輸入的三個整數,然後按照數字排序輸出它們.

以下的偽代碼實現升序排序:
1)讀入變數1,變數2,變數3
2)如果變數1>變數2,則交換變數1、變數2的值
3)如果變數1>變數3,則交換變數1、變數3的值
4)如果變數2>變數3,則交換變數2、變數3的值
5)輸出變數1,變數2,變數3的值

㈦ 想問您一些排序演算法的偽代碼,謝啦

冒泡排序:網頁鏈接

所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。排序演算法,就是如何使得記錄按照要求排列的方法。排序演算法在很多領域得到相當地重視,尤其是在大量數據的處理方面。一個優秀的演算法可以節省大量的資源。在各個領域中考慮到數據的各種限制和規范,要得到一個符合實際的優秀演算法,得經過大量的推理和分析。

C++自帶的algorithm庫函數中提供了排序演算法。

穩定的

冒泡排序(bubble sort) — O(n^2)

雞尾酒排序(Cocktail sort,雙向的冒泡排序) — O(n^2)

插入排序(insertion sort)— O(n^2)

桶排序(bucket sort)— O(n); 需要 O(k) 額外空間

計數排序(counting sort) — O(n+k); 需要 O(n+k) 額外空間

合並排序(merge sort)— O(nlogn); 需要 O(n) 額外空間

原地合並排序— O(n^2)

二叉排序樹排序 (Binary tree sort) — O(nlogn)期望時間; O(n^2)最壞時間; 需要 O(n) 額外空間

鴿巢排序(Pigeonhole sort) — O(n+k); 需要 O(k) 額外空間

基數排序(radix sort)— O(n·k); 需要 O(n) 額外空間

Gnome 排序— O(n^2)

圖書館排序— O(nlogn) with high probability,需要 (1+ε)n額外空間

不穩定的

選擇排序(selection sort)— O(n^2)

希爾排序(shell sort)— O(nlogn) 如果使用最佳的現在版本

組合排序— O(nlogn)

堆排序(heapsort)— O(nlogn)

平滑排序— O(nlogn)

快速排序(quicksort)— O(nlogn) 期望時間,O(n^2) 最壞情況; 對於大的、亂數列表一般相信是最快的已知排序

Introsort— O(nlogn)

耐心排序— O(nlogn+k) 最壞情況時間,需要 額外的 O(n+k) 空間,也需要找到最長的遞增子串列(longest increasing subsequence)

不實用的

Bogo排序— O(n×n!) 期望時間,無窮的最壞情況。

Stupid sort— O(n^3); 遞歸版本需要 O(n^2) 額外存儲

珠排序(Bead sort) — O(n) or O(√n),但需要特別的硬體

Pancake sorting— O(n),但需要特別的硬體

stooge sort——O(n^2.7)很漂亮但是很耗時

㈧ 求一排序演算法(思路或偽代碼均可)

你從左往右,從上往下遍歷每一個元素,執行一個調整函數.
這個函數大概是這樣的:
函數1(x,y):
如果
元素[x,y+1]
沒有超界
並且
元素[x,y]
大於
元素[x,y+1]

元素[x,y+1]
設為
目前最大的數字+1
找出全部和元素[x,y+1]關聯的元素,改變他們的值,並在他們的坐標上執行函數1.
這里所說的關聯,是指他們的初始值一樣.目前最大數字是指整個陣列中最大的數字.

熱點內容
無線網檢查網路配置是怎麼回事 發布:2025-05-16 14:04:03 瀏覽:220
網路爬蟲python代碼 發布:2025-05-16 14:03:26 瀏覽:516
汽車小組件怎麼弄到安卓桌面 發布:2025-05-16 13:51:12 瀏覽:220
linuxg編譯器下載 發布:2025-05-16 13:50:58 瀏覽:776
centosc編譯器 發布:2025-05-16 13:50:17 瀏覽:948
安卓手機如何變換桌面 發布:2025-05-16 13:39:33 瀏覽:515
sql存儲過程命令 發布:2025-05-16 13:17:54 瀏覽:146
用紙做解壓小玩具西瓜 發布:2025-05-16 13:04:09 瀏覽:936
區域網xp無法訪問win7 發布:2025-05-16 13:03:58 瀏覽:943
油卡如何修改密碼 發布:2025-05-16 13:00:35 瀏覽:902