當前位置:首頁 » 操作系統 » 穩定排序演算法

穩定排序演算法

發布時間: 2022-02-06 22:45:17

Ⅰ 冒泡排序是不是穩定排序,求演算法

冒泡排序就是把小的元素往前調或者把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。所以,如果兩個元素相等,我想你是不會再無聊地把他們倆交換一下的;如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改變,所以冒泡排序是一種穩定排序演算法。

# include <stdio.h>

void bubbleSort(int arr[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(arr[j+1]<arr[j])
{
t=arr[j+1];
arr[j+1]=arr[j];
arr[j]=t;
}
}
}

}

void print(int arr[],int n) //列印數組
{
int i=0;
for(;i<n;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
int main(void)
{
int arr[]={49,15,52,64,98}; //測試數據
print(arr,5);
bubbleSort(arr,5);
printf("排序後的結果:\n");
print(arr,5);
return 0;
}

Ⅱ 下列排序演算法中,()是穩定的 a.插入,希爾 b.冒泡,快速 c.選擇,堆排序 d.基數,歸並

另外一個答案不靠譜啊
正確答案應該是D

對基數排序:
A least significant digit (LSD) radix sort is a fast stable sorting algorithm which can be used to sort keys in integer representation order.
對歸並排序:
In computer science, merge sort (also commonly spelled mergesort) is an O(n log n) comparison-based sorting algorithm. Most implementations proce a stable sort, which means that the implementation preserves the input order of equal elements in the sorted output.

來源Wiki

Ⅲ 1,請選擇下面四種排序演算法中最快又是穩定的排序演算法 A.快速排序 B.希爾排序 C.堆排序 D.歸並排序

選D!復雜度O( n*logn )

Ⅳ 穩定的排序演算法有哪些

1.穩定的排序
冒泡排序(bubble sort) — O(n2)
雞尾酒排序 (Cocktail sort, 雙向的冒泡排序) — O(n2)
插入排序 (insertion sort)— O(n2)
桶排序 (bucket sort)— O(n); 需要 O(k) 額外 記憶體
計數排序 (counting sort) — O(n+k); 需要 O(n+k) 額外 記憶體
歸並排序 (merge sort)— O(n log n); 需要 O(n) 額外記憶體
原地歸並排序 — O(n2)
二叉樹排序 (Binary tree sort) — O(n log n); 需要 O(n) 額外記憶體
鴿巢排序 (Pigeonhole sort) — O(n+k); 需要 O(k) 額外記憶體
基數排序 (radix sort)— O(n·k); 需要 O(n) 額外記憶體
Gnome sort — O(n2)
Library sort — O(n log n) with high probability, 需要 (1+ε)n 額外記憶體
2.不穩定的排序
選擇排序 (selection sort)— O(n2)
希爾排序 (shell sort)— O(n log n) 如果使用最佳的現在版本
Comb sort — O(n log n)
堆排序 (heapsort)— O(n log n)
Smoothsort — O(n log n)
快速排序 (quicksort)— O(n log n) 期望時間, O(n2) 最壞情況; 對於大的、亂數串列一般相信是最快的已知排序
Introsort — O(n log n)
Patience sorting — O(n log n + k) 最外情況時間, 需要 額外的 O(n + k) 空間, 也需要找到最長的遞增子序列(longest increasing subsequence)

Ⅳ 那些哪些排序演算法是穩定的內在的

希爾排序、堆排序: 就地的不穩定排序
快速排序: 非就地的不穩定排序
選擇排序: 不穩定排序
插入排序: 穩定排序

Ⅵ 什麼是穩定的排序方法

所謂穩定的排序演算法就是你排序之後相同大小的數值沒有發生變化,比如: 2 4 4 1 6 3 排序之後第二4的位置依然在一個4之後就是他們兩個沒有發生位置變化;稱之為穩定;

Ⅶ 排序演算法的穩定性

常用的幾種排序演算法中,穩定的排序有,冒泡排序,插入排序,歸並排序,不穩定的排序有選擇排序希爾排序,快速排序,堆排序,二叉排序樹排序,等等。

Ⅷ 下列排序演算法中,其中()是穩定的

A,堆不穩定
B,快速
C,選擇不一定
選D

Ⅸ 關於排序演算法的穩定性

假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序後的序列中,r[i]仍在r[j]之前,則稱這種排序演算法是穩定的;否則稱為不穩定的。

即可說明它的不穩定性;而對於穩定的排序演算法,必須對演算法進行分析從而得到穩定的特性。需要注意的是,排序演算法是否為穩定的是由具體演算法決定的,不穩定的演算法在某種條件下可以變為穩定的演算法,而穩定的演算法在某種條件下也可以變為不穩定的演算法。



(9)穩定排序演算法擴展閱讀:

基數排序按照低位先排序,然後收集;再按照高位排序,然後再收集;依次類推,直到最高位。有時候有些屬性是有優先順序順序的。

先按低優先順序排序,再按高優 先級排序,最後的次序就是高優先順序高的在前,高優先順序相同的低優先順序高的在前。基數排序基於分別排序,分別收集,所以其是穩定的排序演算法。

熱點內容
怎麼把自家電腦變成伺服器 發布:2024-04-17 01:14:58 瀏覽:161
有哪些高配置的游戲手機 發布:2024-04-17 01:09:11 瀏覽:437
交易系統編程 發布:2024-04-17 00:09:50 瀏覽:700
編程思想pdf下載 發布:2024-04-16 23:56:26 瀏覽:184
資料庫網格計算 發布:2024-04-16 23:28:13 瀏覽:23
電波蘿莉醬解壓 發布:2024-04-16 23:26:59 瀏覽:548
平板訪問密碼是什麼時候設置的 發布:2024-04-16 23:15:52 瀏覽:179
pyinstaller如何自定義配置打包 發布:2024-04-16 22:51:54 瀏覽:200
怎麼設置建行登陸密碼 發布:2024-04-16 22:49:58 瀏覽:59
大型激光編程 發布:2024-04-16 22:41:04 瀏覽:536