选择排序的java实现

简介

选择排序是一种思想很简单的排序方法,其原理就是在第n轮选择第n小的元素与当前元素交换,这样第n小的元素就在数组的第n个位置了。
比如在第一轮中,把第0个元素设置为最小的元素,并把它跟后面的每一个元素比较,得到最小的元素,将最小的元素和第一个元素进行交换,以此类推

复杂度

时间复杂度

选择排序的时间复杂度为O(n2),因为不管情况怎样都是比较(n-1)+(n-2)+…+3+2+1=n(n-1)/2次

空间复杂度

选择排序不需要分配额外的空间,故它的空间复杂度为O(1)

稳定性

选择排序是一种不稳定的算法,比如5 8 5 3 2 9,经过第一轮交换之后两个5的位置顺序就不一样了,稳定性被破坏,所以它不是一种稳定的排序算法。

java实现

  public void choiceSort(int[]a)
{
     for(int i=0;i<a.length-1;i++)
   {
         int min=i;
         for(int j=i+1;j<a.length;j++)
        {
             if(a[j]<a[min])
          {
             min=j;
          }
        }
        if(a[min]!=a[i])
      {
         int temp=a[min];
         a[min]=a[i];
         a[i]=temp;
      }
   }
}

That's all.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 排序的基本概念 在计算机程序开发过程中,经常需要一组数据元素(或记录)按某个关键字进行排序,排序完成的序列可用于快...
    Jack921阅读 1,468评论 1 4
  • 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的...
    Luc_阅读 2,309评论 0 35
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,224评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,747评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,287评论 0 2