幾種排序演算法的演示,要求給出從初始開始時的每一趟的變化情況,並對各種排序演算法的排序效能做分析和比較

2022-03-16 06:02:48 字數 3568 閱讀 3726

1樓:

//氣泡排序

#include

using namespace std;

void print(int* a, int n)}cout << "第" << i << "次:";

print(a, 10);

if(f)break;}}

int main()

;cout << "排序前:";

print(a, 10);

sort(a, 10);

cout << "排序後:";

print(a, 10);

}//選擇排序

#include

#include

using namespace std;

void print(int* a, int n)a[j] = t;

cout << "第" << i << "次:";

print(a, 10);}}

int main()

;cout << "排序前:";

print(a, 10);

sort(a, 10);

cout << "排序後:";

print(a, 10);}

2樓:匿名使用者

我去了。。15分這麼多演算法。。、

就寫1個得了

快速排序第一趟

public class quicksort   int temp = k;   k = array[j];   array[j] = temp;   while (array[i] < k)      int temp1= k;   k = array[i];   array[i] = temp1;   }   if(k == array[j])      }   public static void main(string args)   ;   quicksort.method(array);   for(int i = 0; i < array.length; i++)      }   }

3樓:林驍汨

我是你同學,直接來找我。懸賞分給我。。。握手!

排序法都有哪些

已知序列(25,16,32,18,20,36,12)請給出採用氣泡排序對該序列做升序排序時的每一趟結果

4樓:手機使用者

氣泡排序的過程很簡單,將第一個記錄的關鍵字與第二個進行比較,若為逆序排列(l.r[1].key>l.

r[2].key),就交換,然後比較第二個記錄與第三個……依次類推,直至第n-1個記錄和n個記錄的關鍵字進行過比較為止。此過程做第一趟氣泡排序,結果是關鍵字最大的記錄被安置到最後一個記錄位置。

然後第二趟,……整個過程需要k(1<=k

15 18 60 41 6 32 83 75 95 初始關鍵字

15 18 41 6 32 60 75 83 第一趟排序後

15 18 6 32 41 60 75 第二趟排序後

15 6 18 32 41 60 第三趟排序後

6 15 18 32 41 第四趟排序後

6 15 18 32 第五趟排序後

第五趟無交換,冒泡停止。

5樓:匿名使用者

#include

#define n (sizeof(a) / sizeof(*a))void display(int a, int n);

int main() ;

int i, j;

printf("original:\n");

display(a, n);

printf("sorted:\n");

for (i = 0; i + 1 < n; ++i)}display(a, n);

}system("pause");

return 0;

}void display(int a, int n)printf("\n");}

6樓:匿名使用者

0:25,16,32,18,20,36,121:16,25,18,20,32,12,362:

16,18,20,25,12,32,363:16,18,20,12,25,32,364:16,18,12,20,25,32,365:

16,12,18,20,25,32,366:12,16,18,20,25,32,36

17)在所有排序方法中,關鍵字比較的次數與記錄的初始排列次序無關的是( ) 。 選擇排序。為什麼呢???

7樓:格子裡兮

原因:一、直接插入排序很明顯,在完全有序的情況下每個元素只需要與他左邊的元素比較一次就可以確定他最終的位置;

二、折半插入排序,比較次數是固定的,與初始排序無關;

三、快速排序,初始排序不影響每次劃分時的比較次數,都要比較n次,但是初始排序會影響劃分次數,所以會影響總的比較次數;

四、歸併排序在歸併的時候,如果右路最小值比左路最大值還大,那麼只需要比較n次,如果右路每個元素分別比左路對應位置的元素大,那麼需要比較2*n-1次,所以與初始排序有關。

歸併排序

假設二路歸併

12  34   2次

2<4  2<3  2次   不用再繼續  共4次

1 2 3 4 有序

2314

23  14  2次

3<4  3>1  2次   再用2比較

2>1       1次   插入

1 2 3 4 有序  共5次

可見歸併排序的比較次數就不固定,隨著初始狀態不同而不同。

8樓:倒黴熊

每一趟從待排序的資料元素中選出最小(或最大)的一個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。

可以看到,每次都是遍歷一遍剩下要排序的部分,找出其最大值或最小值。所以。。。。。

9樓:匿名使用者

因為選擇排序每趟選擇的比較次數是固定的,不會因為順序不一樣而比較次數不一樣。比如(1,2,3)和(3,2,1)這兩個序列次序不同,但是在第一趟選擇排序中選出最小的值1同樣進行2次比較,第二趟選出第二小的值2同樣進行1次比較……也就是說,……

10樓:匿名使用者

答案是直接選擇排序!因為不管初始排列次序是相對正序還是相對亂序,選擇排序對關鍵字的比較次數都是相同的!因為它每一次都要選出關鍵字中最小的!

11樓:匿名使用者

冒泡也與初始排序次序有關,因為一般在實現氣泡排序時,都採用改進演算法,設定一個標誌位flag,將其初始值設定為非0,表示被排序的表示是一個無序的表,每一次排序開始前設定flag值為0,在進行資料交換時,修改flag為非0。在新一輪排序開始時,檢查此標誌,若此標誌為0,表示上一次沒有做過交換資料,則結束排序;否則進行排序。所以,當記錄序列的初始狀態為"正序",則氣泡排序過程只需進行一趟排序即可

12樓:匿名使用者

你趕緊去找一本書先看一下,就知道怎麼回事了,很簡單的!

路由演算法的要求是什么,路由演算法的要求是什麼。

距離向量路由演算法 bellman ford routing algorithm 也叫做最大流量演演算法 ford fulkerson algorithm 其被距離向量協議作為一個演算法,如rip,bgp,iso idrp,novell ipx。使用這個演算法的路由器必須掌握這個距離表 它是一個一維...

常用的資料排序演算法有哪些,各有什麼特點 舉例結合一種排序演算法並應用陣列進行資料排序

排序簡介 排序是資料處理中經常使用的一種重要運算,在計算機及其應用系統中,花費在排序上的時間在系統執行時間中佔有很大比重 並且排序本身對推動演算法分析的發展也起很大作用。目前已有上百種排序方法,但尚未有一個最理想的盡如人意的方法,本章介紹常用的如下排序方法,並對它們進行分析和比較。1 插入排序 直接...

js幾種常見排序的實現,記錄下js幾種常見的陣列排序和去重的方法

學過c嗎?學過別的語言嗎?別的語言有什麼排序演算法js就有什麼!只是語言不一樣而已 並不代表js就不能實現 記錄下js幾種常見的陣列排序和去重的方法 js 陣列去重 1注 應該也可以適用於 object陣列,但是本人沒有進行驗證,貼出來僅供你參考 第一種是比較常規的方法思路 1.構建一個新的陣列存放...