第五章——数组

1.一维数组,字符串(字符数组),二维数组


矩阵的乘法
#include <iostream>
#include<ctime>
#include<cstdlib>
using namespace std;

int main()
{  int a[10][10];
   int b[10][10];
   int c[10][10];
   int i,j;
   int k;
   for(i=0;i<2;i++)
   {for(j=0;j<2;j++)
      cin>>a[i][j];
   }
   for(i=0;i<2;i++)
   {for(j=0;j<2;j++)
      cin>>b[i][j];
   }

   for(i=0;i<2;i++)
   {
       for(j=0;j<2;j++)
        c[i][j]=0;
        for(k=0;k<2;k++)
            c[i][j]+=a[i][k]*b[k][j];
   }
   for(i=0;i<2;i++)
   {for(j=0;j<2;j++)
   cout<<a[i][j]<<'\t';
   cout<<endl;

   }
    return 0;
}

简单字符串的应用

#include <iostream>
#include<ctime>
#include<cstdlib>
#include<cstring>
using namespace std;

int main()
{
   char a[10];
   char b[10];
   cin.getline(a,10,'.');
   strcpy(b,a);
   cout<<a<<endl;
   cout<<b<<endl;
   cout<<strlen(a);



  return 0;
}

2.查找
顺序查找
#include <iostream>

using namespace std;

int main()
{
   int a[10]={1,4,5,6,2,3,0,9,7,8};

   int x,i;
   cin>>x;
   for(i=0;i<10;i++)
    if(a[i]==x) break;
   if(i==10) cout<<"没有";
   else cout<<x<<"的位置为"<<i+1;


    return 0;
}

二分查找
#include <iostream>

using namespace std;

int main()
{
   int a[10]={1,2,3,4,5,6,7,8,9,10};
   int low,high,mid,x;
   cin>>x;
   low=0;
   high=9;
   while(low<=high)
   {
       mid=(high+low)/2;
       if(a[mid]==x) break;
       if(a[mid]<x) low=mid+1;
       else high=mid-1;
   }
   if(low>high) cout<<"没有";
   else cout<<x<<"的位置为"<<mid+1;

    return 0;
}


3.搜索  友情链接: 点击打开链接
选择排序:

选择排序的主要思想是每一趟从待排序序列中选取一个关键值最小的记录,即第1趟从n个记录中选取关键字值最小的记录,第2趟从剩下的n-1个记录中选取关键字值最小的记录,知道整个序列中的记录都选完为止。由选取记录的顺序便可以得到按照关键字值有序的序列。

选择排序包括直接选择排序、树形选择排序、堆排序等

#include <iostream>

using namespace std;

int main()
{
   int a[10]={1,4,5,6,2,3,0,9,7,8};

   int smallest,now,k,temp;

   for(now=0;now<10;now++)
   {
     smallest=now;
   for(k=now;k<10;k++)

       if(a[k]<a[smallest])

        smallest=k;
       temp=a[now];
        a[now]=a[smallest];
        a[smallest]=temp;



   }

   for(now=0;now<10;now++)
     cout<<a[now]<<endl;

    return 0;
}

冒泡排序

#include <iostream>

using namespace std;

int main()
{
   int a[10]={1,4,5,6,2,3,0,9,7,8};

   int i,j,temp;
   bool flag;

   for(i=1;i<10;i++)
   {
   flag=false;
   for(j=0;j<10-i;j++)

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

       temp=a[j];
        a[j]=a[j+1];
        a[j+1]=temp;
        flag=true;
     }
        if(!flag) break;
   }

   for(i=0;i<10;i++)
     cout<<a[i]<<endl;

    return 0;
}

插入排序: 插入排序核心:假设第一个元素排好,之后的元素对排好的部分从后向前比较并逐一移动。

#include <iostream>

using namespace std;
void InsertionSort(int *a, int len)//通过指针把数组传进去,当然也可以用a[]
{
    for (int j=1; j<len; j++)//第一个看作排好序了,所以把第二个设为初值key
    {
        int key = a[j];
        int i = j-1;
        while (i>=0 && a[i]>key)
        {
            a[i+1] = a[i];
            i--;
        }
        a[i+1] = key;
    }
    for(int j=0;j<len;j++)
        cout<<a[j]<<endl;

}
int main()
{
   int a[5]={1,4,6,8,4};
   InsertionSort(a,5);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42183904/article/details/80299946