排序算法总结

来源:互联网 发布:中国第一程序员 编辑:程序博客网 时间:2024/05/17 04:55

冒泡排序

思想:原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,

这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束。

比如你要给 2 3 8 4 6 这五个数字从大到小排序,第一遍比较完之后的结果是:8 2 3 4 6

第二遍比较完之后的结果是:8 6 3 4 2

第三遍比较完之后的结果是:8 6 4 3 2

第四遍比较完之后的结果是:8 6 4 3 2

虽然在这里我们只遍历到第三遍是就结束了,但是如果有 n 个数字则我们只需要比较 n-1 遍即可。

#include <stdio.h>int main(void){    int a[5] = {2,3,4,6,8};    int t;    for(int i=0; i<5; i++)    {        for(int j=i+1; j<5; j++)        {            if(a[i] < a[j])            {                t = a[i];                a[i] = a[j];                a[j] = t;            }        }    }    for(int k=0; k<5; k++)    {        printf("%d",a[k]);// 8 6 4 3 2    }}