zoukankan      html  css  js  c++  java
  • 技术学习博8

    第十五周学的是排序,主要是排序的基本概念、插入和交换类排序

    补一下上周查找的代码,折半查找

     1 int BinSrch(RecordList* l, KeyType k)
     2 /*在有序表L中折半charu其关键字等于k的元素,
     3    若找到,则函数值为该元素在表中的位置*/
     4 {
     5     int  low, high, mid;
     6     int i;
     7     low = 1;   //low表示查找范围的起始处
     8     high = l->length;   //high表示查找范围的终止处
     9     if (l->length >= LIST_SIZE)
    10     {
    11         printf("It is full.
    ");
    12         return 0;
    13     }
    14     while (low <= high)
    15     {
    16         mid = (low + high) / 2;   //计算中点
    17         if (k == l->r[mid].key)
    18         {
    19             printf("exist
    ");
    20             return 0;
    21         }
    22         else  if (k < l->r[mid].key)
    23             high = mid - 1;     /*继续在前半区间进行cha ru*/
    24         else
    25             low = mid + 1;      /*继续在后半区间进行cha ru */
    26     }
    27     //找到插入的位置
    28     for (i = l->length; i >= low; i--)//元素后移
    29         l->r[i + 1].key = l->r[i].key;
    30     l->r[low].key = k;//元素插入
    31     l->length++;
    32     return 1;
    33 }
  • 相关阅读:
    递归方法:对于树形结构的表,根据当前数据获取无限极的父级名称
    P
    A
    今年暑假不AC1
    J
    今年暑假不AC
    A
    *max_element函数和*min_element函数
    1199: 房间安排
    素数
  • 原文地址:https://www.cnblogs.com/hhw-/p/13124614.html
Copyright © 2011-2022 走看看