• 【C++】选择排序


    性能分析:

      时间复杂度:O(n^2)

      空间复杂度:O(1)

    虽然性能跟冒泡排序一样,但是速度上来讲,选择排序要优于冒泡排序,因为减少了数据交换的次数,先找到了最小值的下标,然后将它往前挪。

    #include<iostream>
    #include<vector>
    using namespace std;
    
    int main()
    {
        // 首先找出待排序列中最小的数,然后用这个数和原序列中的第一个数交换位置;
        // 其次,找出第二小的和原第二个数交换位置;
        // 依次顺序直到找到第二大的数,之后原数列完全变成有序数列.
        int data[] = { 1,3,5,2,7,8,9,6,0 };
        //获取序列元素个数
        int length = 9;
        int i, j, min;
        for (i = 0;i < length;i++)
        {
            min = i;//将当前下标定义为最小值下标
            for (j = i + 1; j < length; j++)
            {
                if (data[min] > data[j])
                    min = j;//记录更小的一个值的下标
            }//通过循环找到了无序区最小值的下标
            if (i != min)//如果设定的最小值下标不是无序区的最小值,就交换二者的值
            {
                int temp = data[i];
                data[i] = data[min];
                data[min] = temp;
            }
        }
        for (int i = 0; i < length; i++)
        {
            cout << data[i] << "   ";
        }
    }
  • 相关阅读:
    矩阵乘法(二):利用矩阵快速幂运算完成递推
    更改codeblock编译后程序的图标
    如何在VS2008下使用FLTK
    Python type() 函数
    Python range() 函数用法
    Python len()方法
    Python filter() 函数
    Python bool() 函数
    数据类型
    JAVA标识符
  • 原文地址:https://www.cnblogs.com/masbay/p/14026314.html
Copyright © 2020-2023  润新知