• 数据结构排序-选择排序


    选择排序中的两个经典算法:简单选择排序,堆排序。

    简单选排:通过n-1次数据元素的比较,从n-i+1个记录中选择最小的数据,并与第i个数据进行交换,它的时间复杂度是O(n^2)。

    堆排序:利用堆的特征进行排序,复杂度为O(n*logn)。

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 int n;
     5 
     6 /*
     7  * 选择排序
     8  */
     9 void SelectSort(int *array)
    10 {
    11     int i, j, k, temp;
    12     for (i = 0; i < n; i++)
    13     {
    14         k = i;
    15         for (j = i + 1; j < n; j++)
    16         {
    17             if (array[j] < array[k])
    18             {
    19                 k = j;
    20             }
    21         }
    22         if (k != i)
    23         {
    24             temp = array[i];
    25             array[i] = array[k];
    26             array[k] = temp;
    27         }
    28     }
    29 }
    30 
    31 int main()
    32 {
    33     int i;
    34     int *array;
    35     printf("请输入数组的大小:");
    36     scanf("%d", &n);
    37     array = (int*) malloc(sizeof(int) * n);
    38     printf("请输入数据(用空格分隔):");
    39     for (i = 0; i < n; i++)
    40     {
    41         scanf("%d", &array[i]);
    42     }
    43     SelectSort(array);
    44     printf("排序后为:");
    45     for (i = 0; i < n; i++)
    46     {
    47         printf("%d ", array[i]);
    48     }
    49     printf("
    ");
    50 }
  • 相关阅读:
    互联网资源获取
    Linux tomcat安装
    Linux JDK安装
    Linux入门教程
    windows命令行 查看文件树结构
    Gitea搭建及使用
    Jenkins搭建及使用
    Linux 基础环境搭建
    SpringBoot
    JSON Web Token(JWT)学习
  • 原文地址:https://www.cnblogs.com/niceforbear/p/4534553.html
Copyright © 2020-2023  润新知