三九宝宝网宝宝教育教学论文

c语言中数组中排序中的冒泡法是什么意思啊

12月28日 编辑 39baobao.com

[用c语言编写将两个升序的数组归并成一个新的升序数组]//之前写过的,你可以参考下 #include <stdio.h> int main() { int str1[5]={3,6,7,45,55};//两个升序数组 int str2[5]={8,10,11,22,25}; int out[10];//输出数组 int i=0,j=0,...+阅读

上午回答人家的,现在贴过来(楼上说的都是对的,你结合着理解看看):

找排序的区别,一定要动手(用笔,不是电脑)去执行代码,不用问你也可以看出代码怎么排的,而且你自己对这问题的理解也更加深刻,问人的话说不定哪天你又忘了,说不定还把两种给搞反了。我下面手写给你解释一下代码,你动手去画一下。

为了方便思考,数组零位置我没用

选择排序(从小到大,每次将a[i]到a[n]中最小的值找到,并放到a[i]处)

for(i=1;i<=n;i++) //a[i[是我们当前要确定的数,这样的数有n个(即数组长度)

{

k=i; //k用来待会记录较小的数的位置

for(j=i+1;j<=n;j++) //将a[i]依次与后面的数比较,最后把最小的数交换到a[i]

{

if(a[j]

k=j;

}

temp=a[k]; //k存的就是最终最小的数的位置,把最小的数交换到a[i]

a[k]=a[i];

a[i]=temp;

}

冒泡排序(顺着两两比较,最终最大的数被比较的最后位置,最终达到从小到大顺序)

for(i=1;i

for(j=1;j<=n-i+1;j++) //每次比较,后面比较好的数就不用再比较了

//n-i+1怎么来的?当i=1时,第一次比较肯定包括a[n],用这个特殊情况来写。

{

if(a[j]>a[j+1])

{

temp=a[j]; //把相邻两个数据比较出的较大的值换到后面

a[j]=a[j+1];

a[j+1]=a[j]

}

}

代码为手写,可能有错误,但大致思想就是这样,希望能帮到你。

以下为关联文档:

c语言指针合并两个升序数组还升序#include void merge(char *dest, char *src1, char *src2) { while (*src1 & *src2) { if (*src1 { *dest++ = *src1++; } else { *dest++ = *src2++; } } while(*src1) *d...

如何用C语言编程将两个有序数组a b合并成一个数组c就以你的例子来写,可适当修改为更普遍的 算法核心代码为: int i = j = k = 0; //循环比较,将小的插入到C数组中 while ( i < 3 & j < 3) { if (a [i] < b [j]) c[k++] = a[i++]...

c语言两个升序排列的数组并入第三数组仍然升序#include <stdio.h> int main(void) { int a[5] = {0,3,5,6,8};//第一个有序数组 int b[7] ={2,4,7,9,10,16,20};//第二个有序数组 int c[20];//待放入的数组 int i, j, k; i =...

C语言中合并有序数组不要用C写int a[20],b[20],c[40];//全局数组 void main() { int i,n,m; scanf("%d",&n); for(i = 0; i<n ; i++) scanf("%d",&a[i]); scanf("%d",&m); for(i = 0; i<m ; i++) scanf("%d",&b[i]...

c语言数组排序求四位数按百位由大到小排序//我只能告诉你怎么获取4位数的百位 #include<stdio.h> #include<math.h> void main() { long int a=1234; int bw; bw=(a%(int)pow(10,4-1))/(int)pow(10,4-1-1); printf("%...

c语言中指针数组和字符串数组的区别高手请进!#include "stdio.h" #include "string.h" void shellsort(char v[][10], int n); void writeline(char linp[][10],int n); main() { char line[][10]={"C++","Fortran","Basic","Pasca...

C语言字符指针和字符数组的区别两个用法差不多,唯一的区别在于字符数组的值在程序运行过程中是可以修改的,但是字符指针的值在运行过程中是不能修改的。 #include using namespace std; int main() { char *...

求教c语言二维数组冒泡排序法1、打开Visual Studio工具并创建一个新的Win32程序。 2、在打开的C语言文件中,导入stdio.h空间,然后准备一个main函数。 3、接下来,准备一个需要进行冒泡排序的整数数组。如...

求C语言用冒泡法排序含n个数的数组a的程序#include<stdio.h> #include<vector> using namespace std; void fun(int *p,int n) //冒泡升序子函数 { for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) { if(*(p+i)>*(p+j)...

推荐阅读
图文推荐