第六次做题笔记

零零散散做了一些水题,基础实在很着急。

今天大概学了些什么呢,待我一一叙述:

排序这里学习到了两种,一个是直接插入排序(两个数组一个是目标数组 另一个则是比较数组 第一重循环 则是控制目标数组的遍历 i N;第二重则是控制 已经排序好了的比较数组,找到目标数组第i个元素在比较数组中比较大小第一次出现变化的地方,确定数据移动范围开始位置,记作posi  j i;将比较数组中数据从第posi个开始整体向下一个位置移动;最后把目标数组中第i个位置的元素放到比较数组中第posi个位置 即可)

 

    for(int i = 0; i <5 ; i ++)

    {

        for(j = 0; j < i; j ++)

            if(b[j] > a[i])//找到第一个比a[i]大的数,确定开始移动的数据范围

            {

                break;

 

            }

  temp = j;//避免被全局变量给覆盖

          for(j = i - 1 ; j >= temp; j --)//从temp个数据向后移动一个单位

        {

            b[j + 1] = b[j];

        }

 

        b[temp] = a[i];//把a[i]放到比它大的第一个数的位置

    }),

另一个是冒泡排序( bool bechange = true; N 循环I N- 1趟 (bechange = false);每趟比较j  N – 1 – i次将最大的数放在数组最后的位置(bechange = true);都不取等号 ;状态变量简化程序运行

 

 

bool bechange =true;//状态变量

    for(int i = 0; i < N - 1 &&bechange; i ++)//N - 1趟比较

    {

        bechange = false;

        for(j = 0; j < N - 1 - i; j ++)//每趟比较N- 1 - i次,每次比较都将最大的数放在了最后

            if(a[j] < a[j + 1])

            {

                bechange = true;

                temp = a[j];

                a[j] = a[j + 1];

                a[j + 1] = temp;

 

            }

    });具体的还是自己慢慢回想,明天还是要向前推进吧,不急不急。

两个小数据的对换用异或比较方便,具体的就是a^=b;b^= a; a^=b。异或这里就是^0得原数,^1则是相反数;a^b^b = a。

做题还是要认真看题目,仔细找规律,不要着急着去做题,很多时候是错在小的地方,比如输入输出;或者某些特殊情况;或者题目中的限制条件或已知条件。

今天差不多就这样 还行 。

怪异的长春天气,冻死我了,差点就弄感冒了。不过睡一觉就好咯~拉拉,今天很想家,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值