c语言对数组大小顺序排列有几种算法 请举出源代码说明
常见的数组大小顺序排列算法有以下几种:
- 冒泡排序
冒泡排序是一种简单直观的排序算法,基本思想是将相邻的元素两两比较,根据大小交换位置,这样一遍遍地进行比较交换,直到所有元素排好序为止。
源代码示例:
void bubble_sort(int arr[], int n){
int i, j;
for(i = 0; i < n - 1; i++){
for(j = 0; j < n - i - 1; j++){
if(arr[j] > arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
- 选择排序
选择排序是一种简单直观的排序算法,基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放到序列的起始位置,直到所有元素排好序为止。
源代码示例:
void selection_sort(int arr[], int n){
int i, j, min_index;
for(i = 0; i < n - 1; i++){
min_index = i;
for(j = i + 1; j < n; j++){
if(arr[j] < arr[min_index]){
min_index = j;
}
}
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
- 插入排序
插入排序是一种简单直观的排序算法,基本思想是将待排序的数据元素分成两个部分,已排序的部分和未排序的部分,每次从未排序的部分取出一个元素插入到已排序的部分中,直到所有元素排好序为止。
源代码示例:
void insertion_sort(int arr[], int n){
int i, j, temp;
for(i = 1; i < n; i++){
temp = arr[i];
j = i - 1;
while(j >= 0 && arr[j] > temp){
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
}
原文地址: http://www.cveoy.top/t/topic/YY0 著作权归作者所有。请勿转载和采集!