首页 > 编程语言 > 详细

一步步学习数据结构和算法之选择排序效率分析及java实现

时间:2014-04-04 23:34:27      阅读:541      评论:0      收藏:0      [点我收藏+]
选择排序算法效率分析及实现:
public class SelectSort {
 /**
  * 选择排序原理:从待排序序列中选出最小的元素,放入到已排好序列
  * 元素比较次数:需要比较的次数为n(n-1)/2,总的元素移动次数为3(n-1) ,空间占用情况为O(1)
  * 元素交换次数:
  * 最好情况:最好的情况,元素移动的次数为0
  * 最坏情况:和最好情况一致,元素需要移动3(n-1)次
  * 空间占用情况:
  * @param array
  * @return
  */
 public int[] selectSort(int[] array)
 {
  int i,j,len=array.length;
  for(i=0;i<len;i++)
  {
   int k = i;
   for(j=i+1;j<len;j++)//对序列中第i+1以后的元素进行遍历,找到最小元素下标
   {
    if(array[k]>array[j])
    {
     k = j;
    }
   }
   if(k!=i)
   {
    swap(array,i,k); //交换两个元素位置
   }
  }
  return array;
 }
 
 /**
  * 交换两个元素位置
  * @param array
  * @param pivotPos
  * @param i
  */
 private void swap(int[] array,int i,int k)
 {
  int temp = array[k];
  array[k] = array[i];
  array[i] = temp;
 }
 
 /***
  * 打印排序结果
  */
 public void print(int[] array )
 {
  for(int i=0;i<array.length;i++)
  {
   System.out.print(array[i]+",");
  }
 }
 public static void main(String[] args) {
  int[] array = {1,5,9,3,4,18,7,6};
  SelectSort ss = new SelectSort();
  ss.print(ss.selectSort(array));
 }
}


一步步学习数据结构和算法之选择排序效率分析及java实现,布布扣,bubuko.com

一步步学习数据结构和算法之选择排序效率分析及java实现

原文:http://blog.csdn.net/code4grow/article/details/22939633

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!