【C语言】冒泡法排序

xiaoxiao2025-09-16  44

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; } } }

结果如下:

转载请注明原文地址: https://www.6miu.com/read-5036449.html

最新回复(0)