• 算法笔记--直接选择排序



    直接选择排序最好最坏情况时间复杂度均为O(n^2),不稳定,其优势在于最多只需交换n次,交换操作比比较操作耗时。


    1. 算法思想

              从待排序序列中选择最小的元素,放入有序序列的末尾;如此循环直至待排序序列为空。

    2. 时间复杂度

              最好情况 O(n^2):序列正序有序,无需交换元素,但比较时间为O(n^2)

              最坏情况 O(n^2):序列逆序有序,交换n次,比较O(n^2)

    3. 空间复杂度 O(1)

              就地排序,辅助空间为常数级

    4. 稳定性

              不稳定。存在不相邻元素的交换

    5. 代码实现(C语言)

    void SelectSort(int *A, int n)
    {
    	int i, j, k;
    	int min, tmp;
    
    	for (i = 0; i < n - 1; ++i)
    	{
    		k = i;
    		min = A[i];
    
    		for (j = i + 1; j < n; ++j)
    		{
    			if (A[j] < min)
    			{
    				k = j;
    				min = A[j];
    			}
    		}
    
    		if (k != i)
    		{
    			tmp = A[i];
    			A[i] = min;
    			A[k] = tmp;
    		}
    	}
    }

  • 相关阅读:
    bootstrap
    前端框架 angularjs
    JAva集合框架
    圣诞
    IDEA
    科目三
    Bootstrap简介及Bootstrap里的栅格系统col-md/sm/xs-x;
    C# Windows service 定时发邮件功能 (用到webService)
    <转> 数据库索引的作用和优点缺点
    小知识
  • 原文地址:https://www.cnblogs.com/ltxdzh/p/3960145.html
Copyright © 2020-2023  润新知