邯郸网站优化【邯郸开通400电话】邯郸网站搭建、邯郸微信公众号推文外包、邯郸开通京东拼多多设计、邯郸淘宝装修-网站开发-网站建设【企业网站制作|网页设计】- 高端网站建设 - 书生商友信息科技-

全国热线:400-111-6878

网站建设推广专家

邯郸网站优化【邯郸开通400电话】邯郸网站搭建、邯郸微信公众号推文外包、邯郸开通京东拼多多设计、邯郸淘宝装修

发表日期: 2021-04-10 15:26:44 浏览次数:151

邯郸网站优化【邯郸开通400电话】邯郸网站搭建、邯郸微信公众号推文外包、邯郸开通京东拼多多设计、邯郸淘宝装修


邯郸,是河北省地级市,国务院批复确定的中国河北省南部地区中心城市 [1]  。截至2019年,全市下辖6个区、11个县、代管1个县级市,总面积12073.8平方千米,常住人口954.97万人,其中城镇人口555.36万人,城镇化率58.15%。 [2] 

邯郸位于河北省南端、太行山东麓,西依太行山脉,东接华北平原,与晋、鲁、豫三省接壤,是晋冀鲁豫四省要冲和中原经济区腹心、华北地区重要的交通枢纽,京广铁路、京广高铁纵贯南北,邯长铁路、邯济铁路横跨东西,邯黄铁路直通黄骅港口 [111]  ,京深高速公路、大广高速公路、太行山高速公路贯穿南北,青兰高速公路、邯大高速公路横跨东西,107国道、106国道、309国道、230国道(原定魏公路) [3]  及234国道、514国道 [4]  (原邯临公路)、515国道(原沙曹公路) [112]  形成国省干线公路网,邯郸机场是国家重点发展的支线机场。 [5] 

邯郸是国家历史文化名城,有3100年的建城史,8000年前孕育了新石器早期的磁山文化;战国邯郸为赵国都城,魏县为魏国都城;汉代与洛阳、临淄、南阳、成都共享“五大都会”盛名;邯郸临漳县先后为曹魏、冉魏、前燕、东魏、北齐都城;北宋,大名府成为北宋陪都;清代,大名府为直隶省第一省会。 [6-9] 

邯郸是国家园林城市、中国优秀旅游城市、全国绿化模范城市、全国双拥模范城市、全国社会治安综合治理优秀城市和中国成语典故之都,拥有涉县娲皇宫、广府古城2处5A级景区。

键排序

在排序时,我们会对要排序的值进行比较操作。通常只对值的特定部分进行比较,而用于比较的这个部分就称为键。

例如,课表可能是具有如下形式的C语言结构体数组A

struct STUDENT {
    int studentID;
    char *name;
    char grade;} A[MAX];复制代码

我们可能希望通过学号、学生姓名或所在年级来排序,每项内容都可以作为键。例如,如果我们希望通过学号为结构体排序,就可以在SelectionSort的第(4)行进行如下比较:

A[j].studentID < A[small].studentID复制代码

数组A和交换中使用的临时变量temp都是struct STUDENT类型,而不是integer类型的。请注意,整个结构体都要进行交换,而不仅仅是交换键字段。

交换整个结构体是很费时的,所以产生了一种更有效率的方法,即使用的另一个元素是指向STUDENT结构体的指针的数组,并且只为第二个数组中的指针排序,结构体本身在第一个数组中保持不变。我们将这种方式的选择排序留作本节的习题。

图2-3展示了SelectionSort函数如何应用到完整的程序中,来给含有n(这里约定n≤100)个整数的序列排序。第(1)行会读取并存储数组A中的n 个整数。如果输入超过MAX,只有前MAX个整数被装入数组A。提供一条消息警告用户输入的数字过大在这里可能很实用,不过我们先不考虑这一点。

     #include <stdio.h>

     #define MAX 100
     int A[MAX];
     void SelectionSort(int A[], int n);

     main()
     {
         int i, n;
         /* 在A 中读取和存储输入 */(1)      for (n = 0; n < MAX && scanf("%d", &A[n]) != EOF; n++)(2)          ;(3)      SelectionSort(A,n); /* 排序A */(4)      for (i = 0; i < n; i++)(5)          printf("%d\n", A[i]); /* 打印A */
         }
     void SelectionSort(int A[], int n)
     {
         int i, j, small, temp;
         for (i = 0; i < n-1; i++) {
             small = i;
             for (j = i+1; j < n; j++)
                     if (A[j] < A[small])
                         small = j;
             temp = A[small];
             A[small] = A[i];
             A[i] = temp;
         }
     }复制代码

图 2-3 使用选择排序的排序程序

第(3)行调用SelectionSort来为数组排序。第(4)行和第(5)行会按照排好的顺序将这些整数打印出来。

2.2.3 习题

1. 假设用SelectionSort函数来处理包含如下几组元素的数组:

(a) 6,8,14,17,23

(b) 17,23,14,6,8

(c) 23,17,14,8,6

在每种情况下,分别会发生多少次元素的比较和交换?

2. ** 在为具有n个元素的序列排序时,SelectionSort进行(a)比较和(b)交换的最少次数及最多次数分别是多少?

3. 编写C语言函数,接受两个字符链表作为参数,如果第一个字符串在词典顺序上先于第二个字符串,就返回TRUE提示:实现本节中描述的字符串比较算法。当两个字符串前面的字符相同时,通过在字符串尾部让该函数调用自身进行递归。除此之外,大家还可以设计迭代算法完成同样的工作。

4. * 修改习题3中的程序,使其在比较过程中忽略字母的大小写。

5. 如果所有元素都相同,选择排序会做些什么?

6. 修改图2-3中的程序,使其在数组元素不是整数而是类型为struct STUDENT的结构体时执行选择排序,就像前文附注栏“键排序”中所定义的那样。假设键字段是studentID

7. * 进一步修改图2-3,使其能为任意类型T 的元素排序。不过,大家可以假设某个函数key可以接受某个类型为T 的元素作为参数,并为该元素返回某个任意类型K 的键。还假设有函数lt 接受类型为K 的两个元素作为参数,且若第一个元素“小于”第二个元素,就返回TRUE,否则返回FALSE

8. 除了在数组A中使用整数下标,还可以使用指向整数的指针表示数组中的位置。使用指针重写图2-3中的选择排序算法。

9. * 正如在前文附注栏“键排序”中提到的,如果要排序的元素是诸如类型STUDENT这样的大型结构体,我们可以将它们留在原数组中保持原样,并在第二个数组中对指向这些结构体的指针排序。写下选择排序的这种变形。

10. 写一个迭代程序,打印一个整数数组中的不同元素。

11. 使用本章开始部分所描述的符号Σ和Π来表示以下内容。

(a) 1到377中所有奇数的和。

(b) 2到n(假设n 是偶数)中所有偶数的平方的和。

(c) 8到2k中所有2的n 次幂的积。

12. 证明当small = i时,图2-2中的第(6)到(8)行(进行交换的步骤)对数组A没有任何影响。

c51c866ffa1ab3457f2021e8bbdbcc1.jpg

邯郸网站优化邯郸开通400电话邯郸网站搭建、邯郸微信公众号推文外包、邯郸开通京东拼多多设计、邯郸淘宝装修


上一条:邯郸400电话办理【邯郸网站公司】邯郸百度优化、邯郸域名注册、邯郸网店美工、邯郸微信公众号托管
下一条:邯郸小程序制作【邯郸企业邮箱】邯郸网站外包、邯郸微信商城开发、邯郸网店美工、邯郸淘宝设计
网站制作
小程序制作
网站优化
网站开发
400电话办理
网络推广
网站建设
网店装修
微信公众号开发
网页设计
网络公司
域名企业邮箱
服务器空间
网站案例报价
百科问答
编辑排版美工
App软件开发
百度推广
代运营托管
logo设计
网络全网营销
网站备案
网站定制
小程序开发公司
首页
电话
立即预约