1.冒泡算法:
思路如图所示(图片来自bilibili UP:正月点灯笼)
解释:冒泡算法的思路通俗一点就是每次将自己想要的数(最大值和最小值)放到数组的最后一位,然后每次循环n-1项就可以达到排序的目的了。
代码如下:
#include "stdio.h"
void Bubble(int arr[],int n); //声明冒泡算法函数
void sort(int srr[],int n);//声明检索排序数列函数
int main(){
int i,lenght;
int arr[] = {1,4,5,3,2};//赋值排列数组
lenght = sizeof(arr)/sizeof(int);//计算数组元素
sort(arr,5);//调用检索排序
for(i = 0; i < lenght;i++){//输出结果
printf("%d\n",arr[i]);
}
}
void sort(int arr[],int n){//每次冒泡算法执行完毕,最小的数将会移动到最后一位。每次只需要检索n-1 的数组元素即可,故写以下算法
int i;
for(i = n;i > 1;i--){
Bubble(arr,i);//5,4,3,2,1
}
}
void Bubble(int arr[], int n){
int i,temp;
for(i = 1;i < n;i++){//每次检索由排序传来的n个数组元素,对其进行调换位置,将最小的放到最后一个元素
if(arr[i] > arr[i-1]){
temp = arr[i];//调换位置的通用算法
arr[i] = arr[i-1];
arr[i-1] = temp;
}
}
}
结果如下: