C語言中排序演算法總結

2021-09-26 04:49:11 字數 3269 閱讀 9029

十大經典排序演算法

1.0 十大經典排序演算法

排序演算法是《資料結構與演算法》中最基本的演算法之一。

排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有:插入排序、希爾排序、選擇排序、氣泡排序、歸併排序、快速排序、堆排序、基數排序等。用一張圖概括:

氣泡排序最終結果是:數字按照從小變大的順序排列!

#include int count = 0;

void bubble_sort(int arr, int len)

}int main() ;

int len = (int) sizeof(arr) / sizeof(*arr);

bubble_sort(arr, len);

printf("10個反序數,最大執行次數:%d\n", count);

int i;

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

printf("%d ", arr[i]);

return 0;

}

執行次數45次!

示例**:

#include int count = 0;

void swap(int *a, int *b) //

void selection_sort(int arr, int len) }}

int main() ;

int len = (int) sizeof(arr) / sizeof(*arr);

selection_sort(arr, len);

printf("10個反序數,最大執行次數:%d\n", count);

int i;

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

printf("%d ", arr[i]);

return 0;

}

執行結果:

printf("10個反序數,最大執行次數:%d\n", count);

int i;

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

printf("%d ", arr[i]);

return 0;

}執行結果:

}void swap(int *a, int *b) //交換兩個變數

void selection_sort(int arr, int len,int *pcount)

}void insertion_sort(int arr, int len,int *pcount)

}void shell_sort(int arr, int len, int *pcount)

}int main() ;

int len = (int) sizeof(arr) / sizeof(*arr);

int count = 0;

//氣泡排序

printf("執行氣泡排序:");

bubble_sort(arr, len,&count);

int i;

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

printf("%d ", arr[i]);

printf("執行次數:%d\n", count);

count = 0;

//選擇排序

printf("執行選擇排序:");

selection_sort(arr, len, &count);

int j;

for (j = 0; j < len; j++)

printf("%d ", arr[j]);

printf("執行次數:%d\n", count);

count = 0;

//插入排序

printf("執行插入排序:");

insertion_sort(arr, len, &count);

int k;

for (k = 0; k < len; k++)

printf("%d ", arr[k]);

printf("執行次數:%d\n", count);

count = 0;

//希爾排序

printf("執行希爾排序:");

shell_sort(arr, len, &count);

int m;

for (m = 0; m < len; m++)

printf("%d ", arr[m]);

printf("執行次數:%d\n", count);

count = 0;

return 0;

}執行結果

C語言中排序演算法

選擇排序 拿到其中乙個元素的值依次和其他元素進行比較,完全比較完一次之後,最大或者最小的值出現在第0位.氣泡排序 用兩個相鄰的元素進行比較,每完全比較完依次,最大或者最小的值出現在末尾.例 intnums 5 int length sizeof nums sizeof nums 0 for int ...

C語言中排序函式的用法

c語言中沒有預置的sort函式。如果在c語言中,遇到有呼叫sort函式,就是自定義的乙個函式,功能一般用於排序。一 可以編寫自己的sort函式。如下函式為將整型陣列從小到大排序。void sort int a,int l a為陣列位址,l為陣列長度。對於這樣的自定義sort函式,可以按照定義的規範來...

C語言中排序函式的用法

c語言中沒有預置的sort函式。如果在c語言中,遇到有呼叫sort函式,就是自定義的乙個函式,功能一般用於排序。一 可以編寫自己的sort函式。如下函式為將整型陣列從小到大排序。void sort int a,int l a為陣列位址,l為陣列長度。對於這樣的自定義sort函式,可以按照定義的規範來...