内存容量的基本单位是什么,内存容量的基本单位是字节

  

  c语言是过去几十年软件和硬件阵营之间签订的最坚固的契约。它为硬件C语言的语义充分发挥性能提供了基础组件,而软件虽然有很多层像圆环一样,但最终还是以C语言作为最终的沉淀结局。-后面还会有C版迷你程序!   

  

  之所以开始写这样一系列文档,主要是锻炼自己的编码能力,类似于leetcode。   

  

  总之C版小程序,Python版小程序,两个语言好玩的小项目,会时不时的继续自己收集自己玩。充实你的小白脑细胞。此外,新的语言Rust和go也将参与其中。   

  

  1冒泡调试冒泡排序——bubble sort是一个简单的排序算法。内层重复访问要排序的序列,一次比较两个元素,如果它们的顺序“错了”(看23行和27行,从最大到最小或者从最小到最大),就把它们切换过来。每个外环都将找到一个最大值。截图中肉眼可见的数据移动策略。   

  

  # include stdio . h # include time . h # include stdlib . h # include sys/time . h oid ShowSortPro(int arr,int len){ int I;for(I=0;我leni ) printf('m ',arr);printf(' \ n ');}////冒泡排序//输入参数:数组//数组长度//void冒泡排序(Intarr,Intlen) {Int I,J,Temp//对于(i=0,从小到大排序;I len-1;I ){ //找到每层末尾的最大值printf('================================================================(j=0;j len-1-I;j){ if(arr arr){ temp=arr;arr=arrarr=temp} ShowSortPro(arr,len);} printf('============================================================% d \ n ',I);}}void main() { int arr={ 65,75,59,26,92,19,8,67 };int lenint I;//sizeof是运算符,不是函数。//sizeof可以找到静态分配内存的数组的长度,也就是占用内存的大小,以字节为单位。len=(int)sizeof(arr)/sizeof(ar0);//printf('%ld \n ',sizeof(arr));//printf('%ld \n ',sizeof(arr 0));ShowSortPro(arr,len);printf('=========================================================START==\ n ');BubbleSort(arr,len);printf('=====================================================END \ n ');ShowSortPro(arr,len);} 冒泡数据移动过程   

  

  2冒泡耗时。这里只是测试编译器对代码进行自动优化编译和非优化的耗时比较。后续还会有其他排序算法进行这种耗时的比较。这种算法的耗时实际上受原始数据的顺序影响比较严重,所以代码取消了随机数的种子,编译优化也不会对相同的数据进行优化。如果有兴趣,可以尝试其他级别的优化。这里需要注意的是,优化程序的结果要正确,耗时。   

  

  # include stdio . h # include time . h # include stdlib . h # include sys/time . h oid ShowSortPro(int arr,int len){ int I;for(I=0;ileni ) printf('m ',arr);printf(   

#34; \n");}// // 冒泡排序// 输入参数:数组// 数组的长度//void BubbleSort(int arr<>, int len) { int i, j, temp; // > 小到大的排序 for (i=0; i<len-1; i++){ // 每一层结束找到最大值 //printf("======================================================== %d\n", i); for (j=0; j<len-1-i; j++){ if (arr > arr) { temp = arr; arr = arr; arr = temp; } //ShowSortPro(arr, len); } //printf("======================================================== %d\n", i); }}#define N 16*1024int arrtime;int arrtimecopy;void main() { int len=15; int i; //srand((unsigned)time(NULL)); for (i = 0; i < N; i++) arrtime = rand()%32768; for (i = 0; i < N; i++) arrtimecopy = arrtime; struct timeval start_time, end_time; unsigned int spend_us = 0; ShowSortPro(arrtime, len); printf("============================================================START\n"); gettimeofday(&start_time, NULL); BubbleSort(arrtime, N); gettimeofday(&end_time, NULL); spend_us += end_time.tv_usec-start_time.tv_usec+1000000*(end_time.tv_sec-start_time.tv_sec); printf("============================================================END\n"); ShowSortPro(arrtime, len); printf("1 \t spend %ld us \n", (end_time.tv_usec-start_time.tv_usec+1000000*(end_time.tv_sec-start_time.tv_sec))); for (i=0; i<N; i++) arrtime = arrtimecopy; ShowSortPro(arrtime, len); printf("============================================================START\n"); gettimeofday(&start_time, NULL); BubbleSort(arrtime, N); gettimeofday(&end_time, NULL); spend_us += end_time.tv_usec-start_time.tv_usec+1000000*(end_time.tv_sec-start_time.tv_sec); printf("============================================================END\n"); ShowSortPro(arrtime, len); printf("2 \t spend %ld us \n", (end_time.tv_usec-start_time.tv_usec+1000000*(end_time.tv_sec-start_time.tv_sec))); for (i=0; i<N; i++) arrtime = arrtimecopy; ShowSortPro(arrtime, len); printf("============================================================START\n"); gettimeofday(&start_time, NULL); BubbleSort(arrtime, N); gettimeofday(&end_time, NULL); spend_us += end_time.tv_usec-start_time.tv_usec+1000000*(end_time.tv_sec-start_time.tv_sec); printf("============================================================END\n"); ShowSortPro(arrtime, len); printf("3 \t spend %ld us \n", (end_time.tv_usec-start_time.tv_usec+1000000*(end_time.tv_sec-start_time.tv_sec))); for (i=0; i<N; i++) arrtime = arrtimecopy; ShowSortPro(arrtime, len); printf("============================================================START\n"); gettimeofday(&start_time, NULL); BubbleSort(arrtime, N); gettimeofday(&end_time, NULL); spend_us += end_time.tv_usec-start_time.tv_usec+1000000*(end_time.tv_sec-start_time.tv_sec); printf("============================================================END\n"); ShowSortPro(arrtime, len); printf("4 \t spend %ld us \n", (end_time.tv_usec-start_time.tv_usec+1000000*(end_time.tv_sec-start_time.tv_sec))); for (i=0; i<N; i++) arrtime = arrtimecopy; ShowSortPro(arrtime, len); printf("============================================================START\n"); gettimeofday(&start_time, NULL); BubbleSort(arrtime, N); gettimeofday(&end_time, NULL); spend_us += end_time.tv_usec-start_time.tv_usec+1000000*(end_time.tv_sec-start_time.tv_sec); printf("============================================================END\n"); ShowSortPro(arrtime, len); printf("5 \t spend %ld us \n", (end_time.tv_usec-start_time.tv_usec+1000000*(end_time.tv_sec-start_time.tv_sec))); printf("T \t spend %f us \n", spend_us/5.0);}未优化

  

2级优化

相关文章