C语言之数组


1,数组简介:

所谓数组,就是相同数据类型的元素按1定顺序排列的集合,就是把有限个类型相同的变量用1个名字命名,然后用编号辨别他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的份量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的情势组织起来的1种情势。这些按序排列的同类数据元素的集合称为数组。

2,例子要求:
针对数组这个最基础的数据结构,罗列这个数据结构可以支持的操作,并以大O的方式分析各个操作的时间复杂度

3,实现进程:

#include <QCoreApplication>
//数组的基本操作,排序,取最大值,模糊查询某个值

// 【1】数组排序 算法
// 1.1, 冒泡排序 O(n2)
最好的是数组有序情况下为:O(2N),

平均是正常随机乱序为:O(2N),

最差的是数据完全乱序O(n2)。

void BubbleSort(int A[], int N)

{

 int tmp;
 for (i = 0; i < N – 1; ++i)
 {
 for (j = 1; j < N – i; ++j)
 {
 if (A[j] > A[j – 1]) //从大到小排序,把较小的交换到后面来
 {
 tmp = A[j – 1];
 A[j – 1] = A[j];
 A[j] = tmp;
 }
 }
 }
}

// 1.2 快速排序,它的平均时间复杂度为O(Nlog2N)
最好的是数组有序情况下时间复杂度为:O(nlogn),
平均是正常随机乱序时平均时间复杂度为:O(nlogn)。 ,
最差的是数据完全乱序O(n^2)。
int Partition(int *arr, int low, int high)
{
 int pivot = arr[low];
 while(low < high)
 {
 while(low < high && arr[high] <= pivot) high–;
 arr[low] = arr[high];
 while(low < high && arr[low] >= pivot) low++;
 arr[high] = arr[low];
 }
 arr[low] = pivot;
 return low;
}

void Qsort(int *arr, int low, int high)
{
 if (low < high)
 {
 int mid = Partition(arr, low, high);
 Qsort(arr, low, mid – 1);
 Qsort(arr, mid + 1, high);
 }
}

// 【2】 数组取最大值 算法
最好情况下,最大值在第1个,时间复杂度为:O(n^2)
平均是,最大值在中间位置,时间复杂度:O(n).
最差是,最大值在末尾,时间复杂度:O(2^n)
int max(int array[],int n);
void main( )
{
 int num[N],count,i,val;
? scanf("%d",&count);
 for (i=0;i<count;i++)
 {
 scanf("%d",&num[i]);
 }
 val=max(num,count);
 printf("%dn",val);
 }

int max(int array[ ],int n)
{
 if (n<=1)
 return(array[0]); // 就1个数,最大值就是自已
 int t=max(array+1,n⑴); // 求后面 n⑴个数的最大值
 if (t>array[0]) // t 比第1个大,返回最大 t
 return(t);
 else
 return(array[0]); // t小,返回array[0];
}

// 【3】 数组查询是不是包括某个值
最好情况下,就是第1个,时间复杂度为O(1);
平均情况下,值在中间,时间复杂度为0(N/2);
最坏情况下,值在末尾或不存在,时间复杂度为O(N);
int main()
{
 int n,m,i,a[20];
 int find;
 scanf("%d",&n);
 for(i=0;i<n;i++){
 scanf("%d",&a[i]);
 }
 scanf("%d",&m);
 find = ⑴;
 for(i=0;i<n;i++){
 if(a[i] == m){
 find = i;
 break;
 }
 }

 if(find < 0) {
 printf("Non");
 }
 else {
 printf("%dn", find);
 }
 return 0;
}

// 【4】数组输入输出,1时没有想到用甚么算法,顺序遍历?

 ——–——-—————————————————————–——————————
<版权所有,允许转载,但必须以链接方式注明源地址,否则追究法律责任!>
原博客地址:    http://blog.itpub.net/26230597/viewspace⑴386607/
原作者:黄杉 (mchdba)
——–—————————————————————————————————

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » C语言之数组

87 评论

  1. purchase aldactone for sale order finasteride purchase fluconazole online cheap

  2. ampicillin 250mg cost cephalexin usa erythromycin online order

  3. buy imdur 40mg without prescription buy isosorbide micardis pills

  4. order zyban 150mg without prescription buy zyrtec pills quetiapine 50mg cheap

  5. order zyprexa 10mg bystolic pills valsartan 160mg pill

  6. prilosec over the counter free slot play online blackjack for real money

  7. buy levitra generic purchase levitra methylprednisolone 8 mg oral

  8. generic orlistat 120mg diltiazem price generic acyclovir 400mg

  9. baclofen 10mg ca toradol uk ketorolac for sale

  10. cost tadalafil 10mg Sales cialis cialis 20mg cheap

  11. purchase cialis without prescription Cialis daily best online blackjack real money

  12. indocin 75mg tablet flomax 0.4mg ca purchase cenforce without prescription

  13. buy cialis 10mg online levitra visa pills for erection

  14. buy clomiphene 100mg clomid order prednisolone 40mg over the counter

  15. order fildena for sale proscar 1mg price order finasteride 1mg online

  16. ivermectin cream 1 buy ed pills uk order deltasone 20mg without prescription

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡