zoukankan      html  css  js  c++  java
  • 数据结构(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 }
  • 相关阅读:
    Huffman树与编码
    Python引用复制,参数传递,弱引用与垃圾回收
    Git使用说明
    numpy使用指南
    Python Socket
    温故知新之 数据库的事务、隔离级别、锁
    Oracle数据库的语句级读一致性
    VirtualBox NAT方式与主机互相通信
    Linux的定时任务
    Redis学习
  • 原文地址:https://www.cnblogs.com/Dark-King/p/8184339.html
Copyright © 2011-2022 走看看