zoukankan      html  css  js  c++  java
  • 排序算法之----选择排序&插入排序

    #include <stdio.h>
    #include <stdlib.h>
    
    //选择排序
    //基本思想:通过n-i次关键字的比较,从n-i+1个记录中选择最小的记录,并和第i(1=<i<=n)个记录交换
    //时间复杂度:O(n^2)但是交换次数明显比冒泡排序少
    void SelectSort(int k[], int n)
    {
        int i, j, tmp, min;
        for (i = 0; i < n - 1; i++)
        {
            min = i;
            for (j = i+1; j < n; j++)
            {            
                if (k[j] < k[min])
                {
                    min = j;
                }
            }
            if (min != i)
            {
                tmp    = k[i];
                k[i]   = k[min];
                k[min] = tmp;
            }
        }
    }
    
    //插入排序
    //基本思想:将一个记录插入到已经拍好序的有序表中,从而得到一个新的,记录数增加1的有序表
    //时间复杂度:,O(n^2)
    void InsertSort(int k[], int n)
    {
        int i, j, tmp;
        for (i = 1; i < n; i++)
        {
            if (k[i] < k[i - 1])
            {
                tmp = k[i];
                for (j = i - 1; (k[j] > tmp)&&(j >= 0); j--)
                {
                    k[j + 1] = k[j];
                }
                k[j + 1] = tmp;
            }
        }
    }
    
    void print(int a[], int num)
    {
        int i = 0;
        for (i = 0; i < num; i++)
        {
            printf("%d ", a[i]);
        }
        printf("
    ");
    }
    
    int main()
    {
        int a[10] = { 2, 3, 56, 1, 4, 7, 8, 94, 3, 10 };
        InsertSort(a, 10);
        print(a, 10);
        return system("pause");
    }
  • 相关阅读:
    linux常用命令
    PHP 魔术方法浅谈
    PHP常用的设计模式
    浅谈Restful
    进程,线程与协程的区别
    http与https的
    get与post的区别
    php连接数据库的两种方式
    DRF框架基本组件之过滤,搜索,排序
    DRF-JWT用户认证
  • 原文地址:https://www.cnblogs.com/henkk/p/11206249.html
Copyright © 2011-2022 走看看