首页 > 编程语言 > 详细

交互设计算法基础(7)- Straight Selection Sort

时间:2020-04-05 18:00:32      阅读:60      评论:0      收藏:0      [点我收藏+]

基本思想:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。

  算法流程
  1)初始时,数组全为无序区a[0, ... , n-1], 令i=0;
  2)在无序区a[i, ... , n-1]中选取一个最小的元素与a[i]交换,交换之后a[0, ... , i]即为有序区;
  3)重复2),直到i=n-1,排序完成。

  时间复杂度分析:O(n^2),直接选择排序一种不稳定的排序算法。

void StraightSelectionSort(int a[], int n) {
  int i, j, minIndex;
  for (i=0; i<n; i++) {
    minIndex=i;
    for (j=i+1; j<n; j++) {
      if (a[j]<a[minIndex]) {
        minIndex=j;
      }
      int temp = a[j];
      a[j] = a[minIndex];
      a[minIndex] = temp;
    }
  }
}

 

交互设计算法基础(7)- Straight Selection Sort

原文:https://www.cnblogs.com/x5115x/p/12637834.html

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