c 排序演算法,氣泡排序法C 演算法

時間 2021-08-14 22:26:08

1樓:匿名使用者

1.排序演算法在實際中的應用當然也就是排序了。在實際應用當中比如資料統計等方面都會用到。

而且對一組資料進行排序也方便了後面對資料查詢的操作。要知道在一個有序陣列中查詢和在一個隨機無序陣列中的查詢的時間複雜度和系統消耗是有天壤之別的。

2.演算法複雜度其實是一個估計,也就是那個o(n)。首先o這個操作的定義為:

如果f(n)是正整數n的一個函式,則xn = o(f(n))表示存在一個正的常數m,使得當n大於等於某一個整數n0時都滿足xn小於等於m乘以f(n)。這個在演算法中的實際意義就是:

比如,執行一個排序演算法最多需要執行5n+7條命令(語句):最多表示在執行過程中迴圈被完整的執行,也就是比如迴圈條件從1-n,那麼這個迴圈最多就是可以執行n次。如果這個迴圈裡面有5條基本語句(遞增迴圈變數i++也包括在內),那麼就是5n條語句。

那麼根據上面o函式的定義,這個時候xn = 5n + 7。注意到當n大於等於7的時候5n+7小於等於6n,也就是說我們可以把6看成是m,n看成是f(n),於是我們可以說,這個演算法的時間複雜度是o(n)。對於其他的o(n^2), o(n log n)等等都是這個道理。

在計算總共執行的命令條數的時候要考慮“最壞”(從迴圈初始條件到迴圈最終條件,條件分支也要儘可能的考慮最多的情況)的可能性,然後每一條基本語句(比如一次賦值,一次比較等)都要計入

2樓:匿名使用者

用c++寫演算法卻不用模板是一大敗筆。

3樓:匿名使用者

參加比賽作弊你牛什麼

4樓:冰至誠

問作業也就罷了,比賽題目也來問就太過分了

氣泡排序法c++演算法

5樓:rf饒烽

//以下就是c++氣泡排序

int* bubblesort(int* ary, int length)}}

return ary;}

6樓:無數龍

temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;改為:

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

7樓:匿名使用者

去掉"int n",因為陣列列數不能為變數

8樓:匿名使用者

建議形參中int n去掉,在函式裡面加上int n=strlen(a);

第一個迴圈for(i=0;i

第二個迴圈for(j=0;j

9樓:

第一個for迴圈改為:for(int i=0;i

c++程式設計用函式模板實現排序演算法(氣泡排序、插入排序)

10樓:硪丨曖戀

#include

using namespace std;

template

void bubble(t arr, int n)}for (i=0; i

void insert(t arr, int n){//插入排序

int i,j,pos;

t temp;

for (i=0; i

11樓:張壯同學

#include

using namespace std;

template

void bubble(t arr, int n)}for (i=0; icout << arr[i] << endl;

}//從小到大排序

template

void insert(t arr, int n)}temp = arr[i];

arr[i] = arr[pos];

arr[pos] = temp;

}for (i=0; icout << arr[i] << endl;

}int main()

;float f[7] = ;

//bubble(i, 7);

insert(i, 7);

cout << endl;

//bubble(f, 7);

insert(f, 7);

return 0;}

12樓:匿名使用者

void bubble_sort(int a, int n)}i++;

}while(!bo);}冒泡

int insertsort(int r){for(int i=2;i<=n;i++){x=r[i];j=i-1;

while(x

c語言氣泡排序法,C語言氣泡排序。

1 基本思想 在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即 每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。2 例項 3 解釋 include int main for j 1 j 9 j for...

C語言氣泡排序問題,c語言氣泡排序問題!?

文文的鵬鵬 lz的排序方法是錯誤的。比如,輸入8 6 12 0,按照lz的演算法,最終的排序結果是6 8 12 0。lz的演算法只能保證每相鄰的兩個數小在前大在後,但整體結果並不是這樣,所以排序還是要雙重迴圈的。 排序方法挺多的,各有各的優缺點的,有些人只是習慣了用某一個而已。 哈哈,可以用選擇排序...

C語言氣泡排序法是什麼?

氣泡排序法,是c語言常用的排序演算法之一,意思是對一組數字進行從大到小或者從小到大排序的一種演算法。具體方法是 相鄰數值兩兩交換。從第乙個數值開始,如果相鄰兩個數的排列順序與我們的期望不同,則將兩個數的位置進行交換 對調 如果其與我們的期望一致,則不用交換。重複這樣的過程,一直到最後沒有數值需要交換...