排序算法

常见的排序算法有几种

  • 冒泡排序
    • 冒泡排序,每次把相邻两项进行比较,如果前一项大于后一项,那么把这两项交换,进行n-1次,结果就是从小到大排列的.
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int a[8]= {3,2,5,1,4,7,6,0};
    int n=8,i,j,t;
    for(i=0; i<n-1; i++)
        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;
            }
        }
    puts("排序后结果:");
    for(i=0; i<n; i++)
        printf("%d ",a[i]);
    return 0;
}
/* 排序后结果: 0 1 2 3 4 5 6 7 Process returned 0 (0x0) */
  • 选择排序
    • 选择排序,每次选一个最值,把他放到已有序的集合里,然后再从剩下的数中选取最值,依次循环n-1次
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int a[8]= {3,2,5,1,4,7,6,0};
    int n=8,i,j,t,m;
    for(i=0; i<n-1; i++)
    {
        t=i;
        for(j=i+1; j<n; j++)
        {
            if(a[t]>a[j]) t=j;
        }
        m=a[i];
        a[i]=a[t];
        a[t]=m;
    }
    puts("排序后结果:");
    for(i=0; i<n; i++)
        printf("%d ",a[i]);
    return 0;
}
/* 排序后结果: 0 1 2 3 4 5 6 7 Process returned 0 (0x0) */
  • 插入排序
  • 快速排序
  • 归并排序
  • 堆排序
点赞