算法 —— 选择排序

原创 2015年08月27日 14:53:49
    原理: 选择排序和直接插入排序有些类似。都是有一个有序序列和无序序列。
               区别在于: 选择排序是将无序区的最小值放到有序区的最后,插入排序则是将无序区的第一个值插入到有序区间当中。
 
1、假设整个数组的大小为n,从a[0 ~ i - 1]为有序区间,a[i ~ n-1 ]为无序区间
2、比较a[i ~ n-1]的所有元素,找出最小的元素,将其与a[i]交换,这样在a[0 ~ i]之间就形成了有序区间。
3、i++,重复第二步,直到 i = n - 1

代码:
               int i,j;
   
int m = n;
   
for (i = 0; i < n - 1 ; i ++) {
        m = i;
       
for (j = i + 1 ; j < n  ; j ++) {
           
if (a[m] > a[j]) {
                m = j;
            }
        }
       
       
if (m != i ) {
           
int temp = a[m];
            a[m] = a[i];
            a[i] = temp;
        }
    }

相关文章推荐

java算法——选择排序

/* * 功能:java实现选择排序法 * */ package Shuzu; public class paixu { public static void main(String[] a...

三个简单的算法——选择排序

(算法用php实现) 先贴代码选择排序

经典算法与数据结构的c++实现——直接选择排序

因为是经典的算法,所以网上描述一大把,直接上个图,直观些,给记性不好的菜鸟(如我)一点儿提示。 算法很简单,遍历整个数组,依次选取最小值放到数组前面。 下面是代码(欢迎批评指点,之后应该会放到gi...
  • y277an
  • y277an
  • 2016年03月19日 08:47
  • 741

算法初探——选择排序

选择排序(Selection Sort)就是通过n-1次关键字之间的比较,从n-i+1个记录中选择出最小的记录,并和第i个记录做交换。 简单来说就是 ①从第i个记录向后找一个最小的值 ②将找到的...

【数据结构与算法】——选择排序

选择排序分为:简单选择排序和堆排序 简单选择排序,基本思想:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推...

常用算法回顾——选择排序

原理 选择排序是一种不稳定的初级排序算法,适用于数据量比较小的排序。假设升序排序,它的原理是:首先找出数组中最小的元素,将它与第一个元素交换,如果第一个元素本来就是最小的,则不交换;然后继续在剩下的元...

经典算法——选择排序法

选择排序法将数组元素分为有序区、无序区,其主要思想是:        设想存在一个有序数列里面没有任何元素,还有一个无序数列即是给出的数列,然后在无序数列中每次选择一个最小的元素,放入到有序数列中去。...

算法基础(一)——冒泡,简单选择排序,二分查找

做为数学专业的我,其实一直特别喜欢数学,只不过大学的数学课程让我有点失望,所以选择了专心学习另一个行业计算机,但是随着学习的不断深入,感觉到了数学魅力,数学可以运用到几乎所有的行业,它无处不在,在计算...

C++抽象编程——算法分析(1)——选择排序

在递归中,我们介绍了函数fib(n)的两个不同的递归实现(参见:斐波那契数的分析与拓展),该函数计算第n个斐波那契数。第一个是直接基于数学定义: 事实证明这是非常低效的。第二个实现使用加法序列(...
  • redRnt
  • redRnt
  • 2017年05月11日 11:53
  • 270

排序算法总结(2)——选择排序

接着上一篇文章《排序算法总结(1)——插入排序》的来。 排序主要分为插入排序、选择排序、交换排序、归并排序、计数(也有叫分配)排序。现在总结一下交换排序 二、选择排序 选择排序方案是一类...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法 —— 选择排序
举报原因:
原因补充:

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