java--选择排序

原创 2015年07月09日 14:01:35
选择排序是常用内部排序的一种,常见的实现算法有直接选择排序算法和堆排序算法,选择排序的基本思想是每次从待排数据中选择第n小的数据放到排序列表的第n个位置,假如共有N个数据待排,那么经过N-1次排序后,待排数据就已经按照从小到大的顺序排列了。

  直接选择排序算法的思想比较简单:(假设数据放在一个数组a中,且数组的长度是N)

  1:从a[0]-a[N-1]中选出最小的数据,然后与a[0]交换位置

  2:从a[1]-a[N-1]中选出最小的数据,然后与a[1]交换位置(第1步结束后a[0]就是N个数的最小值)

  3:从a[2]-a[N-1]中选出最小的数据,然后与a[2]交换位置(第2步结束后a[1]就是N-1个数的最小值)

  以此类推,N-1次排序后,待排数据就已经按照从小到大的顺序排列了。
源代码:
/*
选择排序
*/
class ArrDemo1
{
 public static void PX(int[] arr)
 {
  for(int x=0;x<arr.length-1;x++)
  {
   for(int y=x+1;y<arr.length;y++)
   {
       if(arr[x]>arr[y])
     {
       int t=arr[x];
       arr[x]=arr[y];
       arr[y]=t;
     }
     }
   } 
  }
 public static void main(String[] args)
  {
   int[] arr={4,5,6,3,8,9};
    //排序前
   printArray(arr);
   //排序
    PX(arr);
    //排序后
    printArray(arr);
  }   
public static void printArray(int[] arr)
{
 System.out.print("[");
  for(int x=0;x<arr.length;x++)
  {
    if(x!=arr.length-1)
         System.out.print(arr[x]+",");
   else
         System.out.println(arr[x]+"]");
   }
 }
}

Java--选择排序(SelectSort)

class SelectSort{ /* 选择排序。 内循环结束一次,最值出现在头角标位置上。 */ public static void SelectSort(int[] arr){...
  • u011223329
  • u011223329
  • 2013年12月29日 15:41
  • 295

Java--选择排序,冒泡排序

import java.util.*; /* 对给定数组进行排序。 {5,1,6,4,2,8,9} */ class ArrayTest2 { /* 选择排序。 内循环结束一次,最值出现...
  • zlQQhs
  • zlQQhs
  • 2013年04月07日 12:28
  • 805

八大排序算法之选择排序

选择排序—简单选择排序(Simple Selection Sort)
  • ye_scofield
  • ye_scofield
  • 2014年09月16日 10:10
  • 8664

排序算法六:选择排序之直接选择排序

排序算法六:选择排序声明:引用请注明出处http://blog.csdn.net/lg1259156776/引言在我的博文《“主宰世界”的10种算法短评》中给出的首个算法就是高效的排序算法。本文将对排...
  • LG1259156776
  • LG1259156776
  • 2015年09月26日 10:24
  • 2843

【排序算法】选择排序(C++实现)

选择排序算法就是每一趟从待排序的记录中选出关键字最小(最大)的记录,顺序放在已排好序的子文件的最后(最前),直到全部记录排序完毕。常见的选择排序有直接选择排序(Selection Sort),堆排序(...
  • left_la
  • left_la
  • 2013年03月10日 16:01
  • 15368

排序算法(四)选择排序及优化版本

选择排序,是通过每次选择最小的数或者最大的数,然后将它放在它应该出现的位置上。 具体实现过程:将0号下标的数据保存,在之后的数中选择一个最小的数,如果最小的数不是0号数,则将最小的数与0号下标的数进...
  • peiyao456
  • peiyao456
  • 2016年11月20日 13:40
  • 2208

经典排序算法之简单选择排序

前面在介绍冒泡排序的时候,有提到一种简单排序算法,就是从0开始,每次确定一个位置的元素。假设当前需要确定的位置下标为 i,则将i处的元素与后面的元素逐个比较,并将每次比较结果中较小的元素存放在i处,...
  • hulifangjiayou
  • hulifangjiayou
  • 2015年08月06日 19:19
  • 6042

老生常谈——选择排序和插入排序

所谓的排序就是将一组对象按照某种逻辑顺序重新排列的过程.在研究排序算法时,我们需要考虑排序的成本: 需要计算比较和交换的次数.对于不交换元素的算法需要计算访问数组的次数....
  • dd864140130
  • dd864140130
  • 2016年03月10日 13:43
  • 1319

java中冒泡排序与选择排序的区别

初学java语言,排序算法绝对是我们拿来实践的好例子。而在排序中有两种简单的算法是绕不开的,就是冒泡排序与选择排序。下面来分别讲解: 冒泡算法:假设数组长度为lenght,冒泡算法的外循环为leng...
  • tiantianhuanle
  • tiantianhuanle
  • 2016年10月15日 21:27
  • 5361

选择排序(汇编实现)

刚学汇编,于是用汇编编写了选择排序算法,初学真是各种心累啊。 (选择排序思想即为每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。) DATA SEGM...
  • u013519226
  • u013519226
  • 2016年05月03日 22:35
  • 940
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java--选择排序
举报原因:
原因补充:

(最多只允许输入30个字)