• C语言——数组博客作业


    C语言博客04——数组

    0.pta总分


    1.学习总结

    (1).数据查找

    1.遍历数组,找到数据
    2.二分查找法
    在数组数值顺序排列下,可以用while循环,判断中间数值的大小与被查找数值比较,偏大则在左半区继续取一半判断,反之在右半区判断,直到找到。

    int BinSearch(int arr[],int len,int key)                          //(二分法)
    {
    	int low=0;                         //定义初始最小
    	int high=len-1;                 //定义初始最大
    	int mid;                            //定义中间值
    	while(low<=high)
    	{
    		mid=(low+high)/2;              //找中间值
    		if(key==arr[mid])               //判断min与key是否相等
    			return mid;    
    		else if(key>arr[mid])             //如果key>mid  则新区间为[mid+1,high]
    			low=mid+1;
    		else                                       //如果key<mid  则新区间为[low,mid-1]
    			high=mid-1;
    	}
    	return -1;                             //如果数组中无目标值key,则返回 -1 ;
    }
    

    (2).插入数据

    找到数据插入的位置,插入数据并移动数组。

    (3).数据删除

    1.数组左移
    找到要删除的数,将其后面的数组左移

    2.构建新数组

    (4).排序

    1.选择排序(找到最大的一个元素,和末尾的元素交换,然后再从头开始,查找第1 个到第N-1 个元素中最大的一个,和第N-1 个元素交换……)

    2.冒泡排序(采用的是相邻数两两进行比较的思想。如果后一个比前一个大或者小,则将其调换位置,直至所有的数都比较完)

    (5).枚举

    int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    

    (6).哈希数组用法

    可以用来统计数值出现次数,可用来删除重复元素或判断是否有重复元素

    (7).字符数组,字符串

    特点:都以''结束,数组长度要比输入的数据多一位

    字符数组的输入

    1.scanf输入(字符串没有空格的情况下,无须加&号)

    2.fgets输入

    2.PTA实验作业

    2.1 7-6 简化的插入排序

    2.1.1伪代码

    2.1.2代码截图

    2.1.3

    #include<stdio.h>
    int main()
    {
    	int n, i, x, loc = 0;
    	static int a[9];
    	scanf("%d", &n);
    	for (i = 0; i <= n - 1; i++)scanf("%d", &a[i]);
    	scanf("%d", &x);
    	for (i = 0; i <= n - 1; i++)
    	{
    		if (x < a[i])
    		{
    			loc = i;
    			break;
    		}
    	}
    	if (i > n - 1)a[n] = x;
    	else
    	{
    		for (i = n; i >= loc + 1; i--)
    		{
    			a[i] = a[i - 1];
    		}
    		a[loc] = x;
    	}
    	for (i = 0; i <= n; i++)printf("%d ", a[i]);
    }
    

    我的代码比较简洁,他的代码更细致,容易读懂

    2.2 7-14 找鞍点

    2.2.1 伪代码

    2.2.2 代码截图

    2.2.3

    差不多,差不多

    2.3 7-6 切分表达式

    2.3.1 伪代码


    运用fgets输入字符串,切分单个字符判断,用printf("%c")输出单个字符

    2.3.2 代码截图

    2.3.3

    总体思路差不多,老师的代码判断的时候更细致,条理更清晰,这需要我学习

  • 相关阅读:
    ubuntu apt-get工作原理
    关联式容器(associative containers)
    qsort()与besearch()
    D&F学数据结构系列——插入排序
    D&F学数据结构系列——二叉堆
    Windows 系统环境变量的配置
    Python 的版本选择与安装细节
    计算机基础知识总结
    PEP 8 -- Python代码格式规则
    day57 Django补充内容(中间件其他方法、jQuery操作cookie、csrf详解和form组件简单使用)
  • 原文地址:https://www.cnblogs.com/f2002/p/14130707.html
Copyright © 2020-2023  润新知