排序算法

1. 冒泡排序

#include <stdio.h>
#include <stdlib.h>

void sort(int *arr,int len);
int main()
{
    int a[10]={12,32,42,5,6,45,88,123,53,2},i;
    sort(a,10);
    for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    getchar();
    return 0;
}
void sort(int *arr,int len)// 冒泡排序法(相邻两个比较)
{
    int i,j,k;
    for(i=1;i<len;i++)// 里面的循环后最右边是最大,但其余的并未正确排序,一次次循环把剩余的最大数放到剩余的最右边;要从1开始循环
    {
        for(j=0;j<len-i;j++)
        {
            if(arr[j]>arr[j+1])// 从左开始,相邻两个比较,大的被换到右边,最终右边是最大的;改为<就是从大到小排序
            {
                k=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=k;
            }
        }
    }
}

 2019-12-19

 
posted @ 2019-12-19 14:02  艾德龙迹  阅读(190)  评论(0编辑  收藏  举报