向未来的约定brig...吧 关注:25贴子:481
  • 2回复贴,共1

【闪亮~『约定』~闪爱】寒假算法学习

只看楼主收藏回复

原则上和数据结构一起上的,不想混在一起,就分开吧~


IP属地:广东1楼2015-01-28 23:48回复
    算法之递归与分治思想-----折半查找算法~自己写的出了一堆问题,define用了分号,for循环后用了分号,scanf缺了&,检查出来之后还是有问题,累觉不爱,上标准答案~~
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #define FAILURE -1
    int main()
    {
    int BinarySearch(int array[],int key,int low,int high);
    int array[10];
    int i;
    int key;
    printf("请输入一个有序表的10个元素的值:");
    for(i=0;i<10;i++)
    scanf("%d",&array[i]);
    printf("请输入查询的关键字:");
    scanf("%d",&key);
    if(BinarySearch(array,key,0,9)==FAILURE)
    {
    printf("查询无结果!\n");
    exit(0);
    }
    printf("%d位于有序表的第%d个位置",key,BinarySearch(array,key,0,9));
    getch();
    return 0;
    }
    int BinarySearch(int array[],int key,int low,int high)
    {
    int mid;
    if(high<low)
    return -1;
    else
    {
    mid=(low+high)/2;
    if(key<array[mid])
    return BinarySearch(array,key,low,mid-1);
    else if(key==array[mid])
    return (mid+1);
    else
    return BinarySearch(array,key,mid+1,high);
    }
    }


    IP属地:广东2楼2015-01-29 23:31
    回复
      C语言描述,贪心算法~
      #include<stdio.h>
      #include<conio.h>
      int main()
      {
      int N,M,temp;
      int cost[32767],up[32767];
      int count=1,i,j;
      int sum=0;
      scanf("%d %d",&N,&M);
      for(i=0;i<N;i++)
      scanf("%d %d",&cost[i],&up[i]);
      while(count<=M)
      {
      for(i=0;i<N-1;i++)
      for(j=0;j<N-i-1;j++)
      {
      if(cost[j]>cost[j+1])
      {
      temp=cost[j];
      cost[j]=cost[j+1];
      cost[j+1]=temp;
      temp=up[j];
      up[j]=up[j+1];
      up[j+1]=temp;
      }
      }
      sum+=cost[0];
      cost[0]+=up[0];
      count++;
      }
      printf("%d\n",sum);
      }


      IP属地:广东4楼2015-02-08 21:08
      回复