• 数据结构(C语言)关于查找与排序


    1)利用readData()函数从data1.txt中读入不同规模的数据存入数组,
    编写基于数组的顺序查找算法,测试数据量为1万、5万、10万、20万、
    30万、40万和50万时的数据查询时间。

    算法代码如下:

    1 int seqsearch(int a[],int n,int key)
    2 {
    3     int k=n-1;
    4     while(k>=0&&a[k]!=key)
    5         k--;
    6     return (k);
    7 }

    2)利用readData()函数从data2.txt中读入不同规模的有序数据存入数组,
    编写基于数组的二分查找算法,测试数据量为1万、5万、10万、20万、30万、
    40万和50万时的数据查询时间。

    算法代码如下:

     1 int binSearch(int a[],int n,int key)
     2 {
     3     int low=0;
     4     int high=n-1;
     5     int mid;
     6     while(low<=high)
     7     {
     8         mid=(low+high)/2;
     9         if(a[mid]==key) return mid;
    10         if(a[mid]>key)
    11             high=mid-1;
    12         else
    13             low=mid+1;
    14     }
    15     return -1;
    16 }

    3)请设计冒泡排序算法函数void bubbleSort(int a[],int n),对a[1]..a[n]进行升序排序。
    并测试在不同数据规模下的排序效率。

    算法代码如下:

     1 void bubbleSort(int a[],int n)
     2 {
     3     int i=1,j,flag=1;
     4     while(i<=n-1&&flag)
     5     {
     6         flag=0;
     7         for(j=1;j<=n-1-i;j++)
     8             if(a[j+1]<a[j])
     9             {
    10                 a[0]=a[j];
    11                 a[j]=a[j+1];
    12                 a[j+1]=a[0];
    13                 flag=1;
    14             }
    15             i++;
    16     }
    17 }
  • 相关阅读:
    蓝牙的HFP协议笔记
    23种设计模式
    读QT5.7源码(三)Q_OBJECT 和QMetaObject
    实现私有化(Pimpl) --- QT常见的设计模式
    蓝牙Profile的概念和常见种类(转)
    git分支合并
    git log的常见用法
    QThread详解
    git查看某个文件的修改历史
    因为代理原因导致的NotSerializableException
  • 原文地址:https://www.cnblogs.com/Dark-King/p/8184339.html
Copyright © 2020-2023  润新知