zoukankan      html  css  js  c++  java
  • 在集合中查找前k个最小的数

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 #define SIZE 10
     5 
     6 int * k_thSmallest(int * arr, int len, int k_len);
     7 
     8 void find(int* arr, int low, int high, int k_len);
     9 
    10 void swap(int * a, int *b);
    11 
    12 void printArr(int * arr, int len);
    13 
    14 int main()
    15 {
    16     int arr[SIZE] = { 54,5,19,7,49,23,38,16,9,43 };
    17     int k_len = 4;
    18     int* outArr = k_thSmallest(arr, SIZE, k_len);
    19     printArr(outArr, k_len);
    20     free(outArr);
    21     return 0;
    22 }
    23 
    24 void printArr(int * arr, int len)
    25 {
    26     for (int i = 0; i < len; i++)
    27         printf("%d ", arr[i]);
    28     printf("
    ");
    29 }
    30 
    31 void swap(int * a, int *b)
    32 {
    33     int temp = *a;
    34     *a = *b;
    35     *b = temp;
    36 }
    37 
    38 void find(int* arr, int low, int high, int k_len)
    39 {
    40     int pivot = arr[high];
    41     int j = low;
    42     for (int i = low; i <= high; i++)
    43     {
    44         if (arr[i] <= pivot) {
    45             swap(&arr[i], &arr[j]);
    46             j++;
    47         }
    48     }
    49     j--;
    50     if (j == k_len)
    51         return;
    52     else if (j > k_len)
    53         find(arr, low, j - 1, k_len);
    54     else find(arr, j + 1, high, k_len);
    55 }
    56 
    57 int * k_thSmallest(int * arr, int len, int k_len)
    58 {
    59     find(arr, 0, len - 1, k_len);
    60     int* result = (int*)malloc(k_len * sizeof(int));
    61     for (int i = 0; i < k_len; i++)
    62         result[i] = arr[i];
    63     return result;
    64 }
  • 相关阅读:
    StepbyStep Guide to XI Transports Using CMS
    Converting File Content in a Sender Adapter
    XI Trace Level
    定义Inbound IDOC
    SAP 各逻辑系统之间数据传输之ALE之分配模型
    SAP 调用外部程序
    HR 事务代码
    业务数据保存时自动触发IDOC
    JDBC adapter Call Stored Procedures
    SAP Query 导入、导出
  • 原文地址:https://www.cnblogs.com/endenvor/p/8472669.html
Copyright © 2011-2022 走看看