常用的各种C语言

微信公众号:关注嵌入式开发圈以了解更多教程。

有任何疑问或建议,请在公共帐户中留言;如果您认为本文对您有所帮助,请欣赏它▲长按图片保存并分享给朋友圈。

冒泡排序假设您要按升序对包含n个数字的序列进行排序,冒泡排序算法的步骤是:1.从存储序列的数组的第一个元素到最后一个元素,依次比较两个相邻的数字,如果前者较大而后者较小,则交换两个数字的位置; 2.第一次遍历结束之后,将最大数存储在数组的最后一个元素中,然后从第一个元素到倒数第二个元素,依次比较两个相邻的数字。

如果前者较大而后者较小,则交换两个数字。

3.重复第1步n-1次,然后将每遍通过的次数与上一次相比进行一次比较,以完成要求。

示例1.在100中随机生成10个数字,使用冒泡方法将它们按升序排列,然后输出它们。

编程思想:使用最后一个数字与前一个数字进行比较,如果它小于前一个数字,则交换位置,然后与前一个数字进行比较,如果它小于前一个数字,则交换位置,知道它是比以前的数字大或已经在最前面!以这种方式重复8次以安排订单! 1#include 2#include 3#define n 10 4int main(void)5 {6 int a [n],i,j,t; 7 printf(“在100内随机生成10个数字: ”); 8 for(i = 0; i 9 {10 a [i] = rand()%100; 11 printf(“%d ",a [i]); 12} 13 printf(“输出: ”); 14 for(j = 1; j-1; j ++)15 {/ * n处理次数n-1次* / 16 for(i = 0; i-1-j; i ++)17 {/ *每次行程为比前一次行程少一次比较* / 18 if(a [i]> a [i + 1])19 {20 t = a [i]; 21 a [i] = a [i + 1]; 22 a [i + 1] = t; 23} 24} 25} 26 for(i = 0; i27 {28 printf(“%d ",a [i]); 29} 30返回0; 31}操作结果:选择排序选择方法排序是一种相对容易理解的排序算法。

假设将包含n个数字的序列以升序排序,则算法步骤为:1,从存储在数组中的n个数字中找出最小数字的下标(请参阅算法的“查找最大值”) ),然后将最小的数字换成第一个数字; 2.除了第一个数字,然后从剩余的n-1个数字中找到最小数字(n个数字的第二个小数)的下标,并将该数字与第二个数字交换; 3.重复步骤1 n-1次以完成“必需”。

代码案例实现:1#include 2#include 3#define n 10 4int main()5 {6 int a [n],i,j,k,t; 7 printf(“在100个数字内随机生成10个项目: ”); 8 for(i = 0; i 9 {10 a [i] = rand()%100; 11 printf(“%d ",a [i]); 12} 13 printf(“输出: ”); 14 for(i = 0; i-1; i ++)/ *处理n-1次* / 15 {16 k = i; / *始终假设i)是最小的数字,并且k记录其下标* / 17 for(j = i + 1; j18 {19 if(a [j] 20 k = j; 21} 22 if(k!= i)23 {24 t = A [i]; 25 a [i] = a [k]; 26 a [k] = t; 27} 28} 29 for(i = 0; i30 printf(“%d ",a [i]); 31返回0; 32}运行结果:在100内随机生成10个数字,并在排序后输出。

插入排序。

排序的本质是每次读取数字时,立即将数字插入最终存储的数组中。

,每个插入将使数组按顺序排列。

代码示例:1#include 2#include 3#define n 10 4 5int main()6 {7 int a [n] = {-1,3,6,9,13,22,27,32,49}; / *请注意留出一个空格,以便插入数字* / 8 int x,j,k; 9 x = rand()%100; 10 printf(“ x的值是随机生成的:%d ",x); 11 if(x> a [n-2])12 {13 a [n-1] = x; / *如果它大于最后一个数字,则将其存储在最后一个元素中* / 14} 15 else / *找到要插入的位置* / 16 {17 j = 0; 18 while(j-2& x> a [j])19 {20 j ++; 21} 22 for(k = n-2; k> = j; k--)23 {/ *从最后一个数字到要插入的位置的数字,依次移回一位数字* / 24 a [k +1] = a [k]; 25} 26 a [j] = x; / *插入要插入的号码* / 27} 28 printf(“输出: ”);对于(j = 0; j-1; j ++)为29,则为30printf(“%d”,a [j]); 31返回0; 32}运行结果:随机生成一个数字并将其插入到现有数组中,排序后输出:merge sort是将两个按升序(或降序)排列的数据序列合并为一个仍按原始顺序排列的序列。

代码示例:1#include 2#include 3#define m 6 4#define n 4 5int main()6 {7 int a [m] = {-3,6,19,26,68,100} b [n] = { 8,10,12,22}; 8 int i,j,k,c [m + n]; 9国际升; 10 i = j = k = 0; 11 printf(“数组的元素: ”); 12 for(l = 0; l 13 {14 printf(“%d”,a [l]); 15} 16 printf(“ b数组的元素: ”); 17 for(l = 0; l 18 {19 printf(“%d”,b [l]); 20} 21 pri

欢迎您的咨询