A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© H_shaohui 中级黑马   /  2016-5-6 19:36  /  259 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

选择排序
•思想:每趟从待排序的记录序列中选择关键字最小的记录放置到已排序表的最前位置,直到全部排完。
•关键问题:在剩余的待排序记录序列中找到最小关键码记录。
•方法:
–直接选择排序
–堆排序


①简单的选择排序
  1、基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

  2、实例


  3、java实现

1 package com.sort; 2  3 //不稳定 4 public class 简单的选择排序 { 5  6     public static void main(String[] args) { 7         int[] a={49,38,65,97,76,13,27,49,78,34,12,64,1,8}; 8         System.out.println("排序之前:"); 9         for (int i = 0; i < a.length; i++) {10             System.out.print(a+" ");11         }12         //简单的选择排序13         for (int i = 0; i < a.length; i++) {14             int min = a;15             int n=i; //最小数的索引16             for(int j=i+1;j<a.length;j++){17                 if(a[j]<min){  //找出最小的数18                     min = a[j];19                     n = j;20                 }21             }22             a[n] = a;23             a = min;24             25         }26         System.out.println();27         System.out.println("排序之后:");28         for (int i = 0; i < a.length; i++) {29             System.out.print(a+" ");30         }31     }32 33 }

    4、分析
  简单选择排序是不稳定的排序。
  时间复杂度:T(n)=O(n2)。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马