【C语言】冒泡法排序

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

结果如下:

猜你喜欢

转载自blog.csdn.net/u011182346/article/details/83383868
今日推荐