C语言之数组
发布时间:2020-12-13 20:11:27 所属栏目:PHP教程 来源:网络整理
导读:1,数组简介: 所谓数组,就是相同数据类型的元素按1定顺序排列的集合,就是把有限个类型相同的变量用1个名字命名,然后用编号辨别他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的份量,也称为数组的元素,有时也称为下
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,helvetica; font-size: 14px;"> if (low < high) int mid = Partition(arr,low,high); Qsort(arr,mid - 1); // 【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,a[20]; int find; for(i=0;i<n;i++){ find = ⑴; if(a[i] == m){ find = i; break; if(find < 0) { printf("Non"); else { return 0; // 【4】数组输入输出,1时没有想到用甚么算法,顺序遍历? --------------------------------------------------------------------------------------------------------------- <版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!> 原博客地址: http://blog.itpub.net/26230597/viewspace⑴386607/ 原作者:黄杉 (mchdba) ------------------------------------------------------------------------------------------------------ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |