十大排序之C语言

1、冒泡排序(Bubble Sort)

基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。

首先,要了解什么是冒泡排序。冒泡排序是常用的一种排序方法,其基本方法就是逐次比较。即一次比较两个数,若它们的顺序错误,则它们交换;重复进行,直到没有需要交换为止。

1.1 算法描述

  1. 比较相邻数字的大小,若第一个数比第二个数大,则相互交换
  2. 对每一对相邻的数作相同的工作,那么最后的数应该是最大的数;
  3. 针对所有数(除了最后一个)重复上述步骤,直到没有任何一对数字需要比较为止。

代码:

#include "stdio.h"
void main(){
    int i,t,j,p;
    int a[]={10,36,12,28,78,96,8,88};
    int n=sizeof(a)/sizeof(a[0]);
    printf("n=%d\n",n);
	for(i=0;i<n-1;i++){
	    printf("第%d次排序如下: ", i+1);
	  for(j=0;j<n-i-1;j++){
		if(a[j]>a[j+1]){
			t=a[j];
			a[j]=a[j+1];
			a[j+1]=t;
		}
	}
	  		for(p=0;p<n;p++){
			printf("%-5d\t",a[p]);
		}
		printf("\n");
}
    printf("最终排序的数组为: \n");
	for(i=0;i<n;i++){
		printf("%-5d\t", a[i]);
	}
	printf("\n");
}

2、选择排序(Selection Sort)

基本思想:依次选出数组最小的数放到数组的前面。首先从数组的第二个元素开始往后遍历,找出最小的数放到第一个位置。再从剩下数组中找出最小的数放到

猜你喜欢

转载自blog.csdn.net/qq_42680327/article/details/103931603