zoukankan      html  css  js  c++  java
  • 算法笔记--直接选择排序


    直接选择排序最好最坏情况时间复杂度均为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;
    		}
    	}
    }

  • 相关阅读:
    inline-block 文字与图片不对齐
    js去除数组重复项
    react2
    kfaka windows安装
    sigar 监控服务器硬件信息
    Disruptor
    Servlet 3特性:异步Servlet
    jvmtop 监控
    eclipse如何debug调试jdk源码
    一致性hash算法
  • 原文地址:https://www.cnblogs.com/ltxdzh/p/3960145.html
Copyright © 2011-2022 走看看