首页 > 解决方案 > 这是哪个排序

问题描述

我写了一个排序程序,看起来像插入排序,但实际上不是,所以我的问题是这是哪个算法

#include<stdio.h>

int main()
{
    int n=5,i=0,a[5],j=0,temp=0;
    printf("Enter 5 elements \n");
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<i+1;j++)
        {
            if(a[i+1]<a[j]) 
            {
                temp=a[i+1];
                a[i+1]=a[j];
                a[j]=temp;
            }
        }
    } 
    printf("\nThe Sorted Array is ");
    for(i=0;i<n;i++)
    printf("%d ",a[i]);
    return 0;
}

标签: csorting

解决方案


迭代地比较两个连续元素并且——如果它们的顺序不正确——交换它们的位置的排序算法称为冒泡排序。冒泡排序这个名称描述了这样一个事实,即在执行过程中,较大的元素会像气泡一样逐个位置“缓慢地”向上爬升。

您的算法 - 在两个嵌套循环的内部之一中 - 这个比较/交换习语。


推荐阅读