1樓:塊救救萌新吧
最好抄情況需比較襲n-1次,最壞情況需比較(n-1)/2。
1、外bai迴圈du是遍歷每個元素,每次都放zhi置好乙個dao元素;
2、內迴圈是比較相鄰的兩個元素,把大的元素交換到後面;
3、等到第一步中迴圈好了以後也就說明全部元素排序好了。
2樓:假面
n個元素在整個冒泡
bai排序過程中du
至多需要進zhi行n-1趟排序。
重複地走訪過要排dao序的元素列,專
依次比較兩個屬相鄰的元素,如果順序(如從大到小、首字母從z到a)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。
對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。
3樓:匿名使用者
n-1趟
氣泡排序每一趟將確定乙個元素的位置(位於當前子串行的末端),如果每一趟都需要進行元素的交換,則此時氣泡排序需要進行n-1趟(第n-1趟確定好倒數第二個元素時,最後乙個元素位置也已經確定好)。
c語言程式設計題 題目描述 使用氣泡排序法對陣列元素從小到大進行排序,要求輸出每一趟排序後的陣列內容( 5
4樓:璐人釔
#include "stdafx.h"
#include
#include
using namespace std;
void sort(int arry,int counts)//氣泡排序法
}for (int k=0;k='0'&&c<='9')}sort(arry,counts);
system("pause");
return 0;}
5樓:育知同創教育
假設陣列有10個數
#include
int main()
;int i,j,t;
for(i=1;i<10;i++)
for(int k=0;k<10;k++)}}}
對序列1,2,3,4,5進行排序,用堆排序、快速排序、氣泡排序和歸併排序進行排序,分別需要進行幾趟排序
6樓:
1、插入排序
(直接插入排序和希爾排序)
2、選擇排序(直接選擇排序和堆排序)
3、交換排序(氣泡排序和快速排序)
4、歸併排序
5、基數排序
直接插入排序:逐個將後乙個數加到前面的排好的序中。在直接插入排序過程中,對其中乙個記錄的插入排序稱為一次排序;直接插入排序是從第二個記錄開始進行的,因此,長度為n的記錄序列需要進行n-1次排序才能完成整個序列的排序。
時間複雜度為o(n2)。
希爾排序:希爾排序又稱縮小增量排序,增量di可以有各種不同的取法,但最後一次排序時的增量必須為1,最簡單可取di+1=di/2(取小)。時間複雜度為o(n(log2n)2)。
直接選擇排序
說明:每次將後面的最小的找出來插入前面的已排好的序中。同理,具有n個記錄的序列要做n-1次排序。
時間複雜度為o(n2)。
氣泡排序:兩個兩個比較,將大的往後移。通過第一次氣泡排序,使得待排序的n個記錄中關鍵字最大的記錄排到了序列的最後乙個位置上。
然後對序列中前n-1個記錄進行第二次氣泡排序。。。對於n個記錄的序列,共需進行n次氣泡排序。時間複雜度為o(n2)。
快速排序:又叫分割槽交換排序,是對氣泡排序方法的一種改進。時間複雜度為o(nlog2n)。
歸併排序:將兩個或兩個以上的有序資料序列合併成乙個有序資料序列的過程。時間複雜度為o(nlog2n)。
在集合中有n個元素,為什麼該集合就有2的n次方個子集
這要用到排列組合的知識 因為每個元素可以屬於子集,或不屬於子集,即有兩種選擇那麼根據排列組合的知識我們知道子集的個數是2 2 2 2 n個 如果不懂,請hi我,祝學習愉快!包含0個元素的有cn0個子集包含k個元素的有cnk子集。相加cn0 cn1 cnk cnn 1 1 n次方即為2的n次。排列組合...
輸入n個關鍵碼n80,使用氣泡排序法,對這n個關鍵碼
氣泡排序是沒掃瞄一次資料就得 出乙個最大的或最小的數。for i 0 ia i 1 交換a i 和a i 1 輸出a陣列,這版是一趟的結果。再迴圈n次就得權到n趟了 這是思路,要 嗎?void cmp int s,int n 從小內 到大容排序 for int k 0 k c語言程式設計題 題目描述...
設計遞迴演算法生成n個元素的所有排列物件
include include using namespace std int count int n 算n的階乘 因為n個數能組成n 個數else if n 1 return 1 else return count n 1 n int pow10 int n 算出10的n次方 int comm i...