美文网首页
码图结构体排序

码图结构体排序

作者: 瑶瑶_2930 | 来源:发表于2017-12-04 15:55 被阅读0次

题目如下:
对结构体数组进行排序。

“题目描述:
struct Person{
  int no;
  int age;
  int height;
}
实现sort方法对结构体数组进行排序。
void sort(Person * array,int n);
保存为sort.cpp.
根据no从小到大排序;如果no相同则根据age排序;如果age相同,则根据height排序。

注意:
遇到异常情况,输出"error";否则不要随意输出,会视为错误。”

Q1:排序

不是很熟悉排序所以又看了一下冒泡排序
代码如下:

#include <stdio.h>
void swap(int *a, int *b);
int main()
{
    int    array[10] = {15, 225, 34, 42, 52, 6, 7856, 865, 954, 10};
    int    i, j;
    for (i = 0; i < 10; i++)
    {
        //每一次由底至上地上升
        for (j = 9; j > i; j--)
        {
            if (array[j] < array[j-1])
            {
                swap(&array[j], &array[j-1]);
            }
        }
    }
    for (i = 0; i < 10; i++)
    {
        printf("%d\n", array[i]);
    }
    return    0;
}
void swap(int *a, int *b)
{
    int    temp;
    temp = *a;
    *a = *b;
    *b = temp;
}    

在编译器里操作了一下,总结有以下几点值得关注:

  • 会把较小的数(不是最小)也冒泡上去,体现在无论是否交换位置,都会j--,然后再比较,其实array[j-1]始终是较小的那个数,和相邻的数比较。
  • 因为已找出了最小和次最小,所以不用和它们比了,体现在j>i

Tip 2

交换函数,注意形参是struct person类型。

Tip 3

有个bug坑了我好久

      
swap(array+j,array+j-1);    

之前写成了

swap(array+j;array+j-1);   

就说为什么编译器一直提醒我要在array前面加括号,原来有分号它以为我语句结束了。

Tip 4

要调用的函数要么先声明,要么就把函数体写在前面。

Tip 5

基本的算法没有那么难,相信自己可以解决!

相关文章

  • 码图结构体排序

    题目如下:对结构体数组进行排序。 “题目描述:struct Person{int no;int age;int h...

  • 学习acm组ppt的笔记1

    结构体 memset对结构体的支持 主要是下面两句 选择排序&插入排序 这两个排序总是搞混选择排序:把第i趟最大/...

  • 杭电ACM-2020

    题目: 代码: 注意:此题为结构体排序 对 绝对值数列的排序的典型题目!!!

  • ffmpeg AVFormat结构体主要变量

    AVFrame是包含码流参数较多的结构体。参考结构体理解:http://www.jianshu.com/p/d10...

  • ffmpeg AVFormatContext结构体主要变量

    AVFrame是包含码流参数较多的结构体。参考结构体理解:http://www.jianshu.com/p/d10...

  • FFMpeg入门学习笔记(1)常用变量

    FFmpeg主要构成 常用变量:AVFrame:包含码流参数较多的结构体 AVFormatContext:包含码流...

  • 第4章 结构体

    1、排序 算法分析 用结构体存储,并进行排序 时间复杂度 Java 代码 2、成绩排序 算法分析 先对分数从小到大...

  • 单链表学习

    本文发表于KuTear's Blog,转载请注明 创建 定义结构体 创建 长度 排序 冒泡排序,没有修改原始节点的...

  • qsort函数排序实例详解

    排序qsort 使结构体中按照某数据进行排序函数头文件:stdlib.hqsort 的函数原型是void qsor...

  • 有向无环图的数据结构和拓扑排序

    有向无环图的拓扑排序,首先定义有向图的存储数据结构,邻接链表Bag,实现Iterable接口。 定义有向图的数据结构:

网友评论

      本文标题:码图结构体排序

      本文链接:https://www.haomeiwen.com/subject/iedxixtx.html