本文共 732 字,大约阅读时间需要 2 分钟。
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; } }}
结果如下: