首页 > 代码库 > 说一说,最基础的三个排序

说一说,最基础的三个排序

为什么突然想要写着最简单的三个排序呢?

第一个原因是 前两天在北科大的研究所里面居然把选择排序写错了(煞是丢人!)

二是 好久没有温习过了 借此机会温习一下 也给自己的博客开个篇

因为 一上来 就整写bigger 太高的 真心觉得现在的自己 有些hold不住

所以 来吧

首先 排序嘛 需要一个 数组序列 {a1,a2,a3,...,an}

我们让它来满足 从小到大的排列

这里先要来介绍一下 冒泡排序 插入排序 跟 选择排序 他们在空间复杂度上 都是一样的 全部都是 O(n^2) 其次对于少量元素的排序,他们是很有效的算法

比如说 来为 混乱的扑克牌 来排序 这三种方式 我们都是i可以使用的 且 时间上是差不多的

1.冒泡排序(顺便说一下 因为 不想 再在.net混了 所以 代码几乎 采用 c/c++)

main()

{

  int [] A={7,5,8,1,4,9,6,4};

  for(int i=0;i<A.length;i++)

  {

    for(int j=0;j<A.length;j++)

    {

      if(A[i]>A[j])

      {

        int temp=A[j];

        A[j]=A[i];

        A[i]=temp;

      }      

    }

  }

}

这就是一个冒泡排序

2.选择排序

main()

{

  int [] A={5,6,8,1,2,4,9};

  for(int i=0;i<A.length;i++)

  {

    int min=A[i];

    for(int j=i+1;j<A.length;j++)

    {

      if(A[j]<A[i])

        min=a[j];

    }

    int temp=A[j];

    A[j]=A[i];

    A[i]=temp;

  }

}

3.插入排序

main()

{

  int []a={9,5,8,1,4,6};

  for(int i=1;i<a.length;i++)

  {

    int temp=a[i];

    for(int j=i;j<0&&temp<a[j-1];j--)

    {

      a[j]=a[j-1];

    }

    a[j]=temp;

  }

}

说一说,最基础的三个排序