排序演算法彙總

2021-08-17 11:13:51 字數 2512 閱讀 3257

#include

void selectsort(int r, int n);

int main() ;

selectsort(text, 10);

printf("公升序:");

for (i = 0; i < 10; i++)

printf("\n");

getchar();

return1;}

void selectsort(int text, int n)

if (index != i) }}

#includevoid bubblesort(int

text, int n);

int main() ;

bubblesort(text, 10);

printf("公升序:");

for (i = 0; i < 10; i++)

printf("\n");

getchar();

}void bubblesort(int

text,int n) }}

}

#includevoid bubblesort(int

text, int n);

int main() ;

bubblesort(text, 10);

printf("公升序:");

for (i = 0; i < 10; i++)

printf("\n");

getchar();

return1;}

void bubblesort(int

text, int n)}}

}

氣泡排序2的時間複雜度:

比較次數:

; for (j = 0; j < 10; j++) }}

printf("降序:");

for (i = 0; i < 10; i++)

printf("\n");

for (j = 0; j < 10; j++) }}

printf("公升序:");

for (i = 0; i < 10; i++)

printf("\n");

getchar();

return

1;}屬於分治策略中的一種排序演算法

宣告:**為:

}時間複雜度:

時間複雜度=拆分(int m = (s + e) / 2)+解決問題(兩個遞迴語句:2t(1/2n))+合併(n)。

其中拆分時間規模為乙個常數,故可忽略不計,則有:2t(n/2)+n。

tn=

if (it[i];

t[i] = t[j];

t[j] = temp;

i++;

}while (j>i&&t[j] >= t[i])

if (j>i)

}return i;

}void quicksort(int t,int s,int e)

}void main();

quicksort(t,0,8);

for(int t=0;t<9;t++)時間複雜度

最好情況:每次劃分對乙個記錄定位後,該記錄的左側子串行與右側的長度相同,時間複雜度同歸並排序,為:

t(n)=2*t(n/2)+n,即o(nlog2n)

最壞情況:待排序為正序或者逆序,每次劃分只得到乙個比上一次劃分少乙個記錄的子串行,此時,必須經過n-1次遞迴才能把所有記錄定位,而且第i趟劃分需要經過n-i次才能找到第i個記錄的位置,所以時間複雜度為:

∑n

−1i=

1 ∑i=

1n−1

(n-i)=1/2*n*(n-1)=o(n^2)

排序演算法 排序演算法彙總

排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...

排序演算法 排序演算法彙總

排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...

排序演算法 排序演算法彙總

排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...