精华内容
下载资源
问答
  • C语言 冒泡法排序 C语言 冒泡法排序 C语言 冒泡法排序 C语言 冒泡法排序 C语言 冒泡法排序 C语言 冒泡法排序
  • c语言冒泡法排序

    2015-05-16 18:36:42
    此程序为c语言冒泡法排序的事例,便于初学者掌握一定的技巧
  • 满意答案zjmbj68gd推荐于 2017.10.05采纳率:52%等级:8已帮助:1161人从大到小:#include#define N 10void main(){int i,j;float a[N],t;printf("排序前:\n");for(i=0;i{scanf("%d",&a[i]);}for(i=0;i{printf(...
    展开全文
  • C语言冒泡法排序

    2020-09-03 20:15:19
    C语言 冒泡排序 #include <stdio.h> #include <stdlib.h> //冒泡排序 void bubbleSort(int *arr,int n) { int m, i, j; for(i = 0; i < n - 1; i++) for(j = 0; j < n - 1 - i; j++) if...

    C语言 冒泡排序

    #include <stdio.h>
    #include <stdlib.h>
    //冒泡排序 
    
    void bubbleSort(int *arr,int n)
    {
    	int temp, i, j;
    	for(i = 0; i < n - 1; i++)
    		for(j = 0; j < n - 1 - i; j++)
    			if(arr[j] > arr[j+1])  //冒泡法是前后两个元素进行比较 
    			{
    				temp = arr[j];
    				arr[j] = arr[j+1];
    				arr[j + 1] = temp;
    			}
    }
    
    int main(void)
    {
    	int p[10] = {1, 5, 3, 4, 8, 10, 4, 6, 7, 2};
    	int i;
    //      调用函数
    	bubbleSort(p, 10); 
    //		输出 
    	for(i = 0; i < 10; i++)
    	{
    		printf("%d ", p[i]);
    	} 
    	system("pause");
    	return 0; 
    } 
    
    展开全文
  • C语言 冒泡法排序,选择法排序和插入排序

    千次阅读 多人点赞 2014-12-04 22:56:06
    实例1 冒泡法排序 数组中有N整数,用冒泡法将它们从小到大(或从大到小)排序。 ...冒泡法排序C语言教材中已经介绍过的排序方法,与其他排序方法比较起来,冒泡法效率是最低的,但因其算法

    实例1 冒泡法排序

    数组中有N个整数,用冒泡法将它们从小到大(或从大到小)排序。

    实例解析:

    排序是非常重要且很常用的一种操作,有冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序等多种方法。这里我们先简单介绍前三种排序算法和代码的实现,其余算法将在后续课程《数据结构》中学习到。

    冒泡法排序是C语言教材中已经介绍过的排序方法,与其他排序方法比较起来,冒泡法效率是最低的,但因其算法简单,故也常被采用,其算法是:

    1从第一个数开始,相邻两个数两两比较,将大的(或小的)交换到后面,然后继续比较第23个数…..当比较完最后两个数的时候,最大数(或最小数)便排在最后了。此过程称为一趟

    (2)将最大数排除在外,其余数重复步骤1

    (3)重复步骤2,直到所有数都排好为止。

    对于有N个数的排序,上面的过程总共需要进行N-1趟。

    下面是冒泡法排序的代码:

    #include <stdio.h>

    #define  N 10

    int main()

    {int  a[N] = {3,5,2,9,7,4,8,1,0,6}, i, j, t;

     for(i = 0; i < N-1; i++){     //共进行N-1

       for(j = 0; j < N–i-1; j++)  /*已排好的数据不参与比较 */

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

           t = a[j];

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

           a[j+1] = t;

         }

     }

     for(i = 0; i <= N-1; i++)

       printf(“%3d”, a[i]);

     printf(“\n”);

     getch();

     return 0;

    }

    实例2 选择法排序

    数组中有N个整数,用选择法将它们从小到大排序。

    实例解析:

    选择法是被较多采用的一种排序方法,其效率比冒泡法高(交换数据的次数少),而算法却并未复杂多少。

    选择法排序总的思路是:

    1找出一个最小数,交换到最前面。

    2在剩下的数里面,再找一个最小的,交换到剩下数的最前面

    3、重复步骤,直到所有数都已排好。

    显然,对于含有N个数的数组来说,其过程也要进行N-1 ( 0 <= i < N-1 )

    上面所述步骤中,“找出一个最小数,交换到最前面”的方法是:

    先将剩下数中的第一个数(序号是i)作为擂主,用变量k记下其序号,后面的数依次与擂主(注意:擂主是a[k],不总是a[i])比较,若比擂主还小,则用k记下其序号(注意:此时不要交换),当所有数都与擂主比较后,k中存放的就是最小数的序号,然后将它交换到最前面(现在才交换)。在上面的过程中,数据只交换了一次,即每趟只交换一次数据。

    代码如下:

    #include <stdio.h>

    #define  N 10

    int main()

    {int  a[N] = {3,5,2,9,7,4,8,1,0,6}, i, j, k, t;

     for(i = 0; i < N-1; i++){          //共进行N-1

        /* 首先将最前面数当作擂主,记录其序号 */

    k = i;                    //当进行第i趟时,最前面数的序号是

        /* 后面的每一个数都与擂主进行比较,以便找出最小数 */

    for(j = i+1; j <= N-1; j++)   

          if(a[j] < a[k])          //擂主是a[k],未必总是a[i] 

            k = j;                  //若比擂主还小,则记录其序号

    /* 将最小数交换到(剩下数的)最前面 */

        t = a[k];

        a[k] = a[i];

        a[i] = t;     

     }

     for(i = 0; i <= N-1; i++)

       printf(“%3d”, a[i] );

     printf(“\n”);

     getch();

     return 0;

    }

    实例3 插入排序

    数组中有N个整数,用插入排序实现它们由小到大的排列。

    实例解析:

    插入排序也是常用的一种排序方法,效率较冒泡法高(一趟即可完成),但比选择法低(移动数据次数多)。其基本思想是:将数组分成两个区:前面是已排序的区域(有序区),后面是没有排序的区域(无序区)。每次都从无序区中取第一个数插入到有序区中适当位置,直到所有数据插入完毕为止。

    算法的具体描述是:

    待排序的数据存放在数组A[0, 1, ...N-1]中,未排序前,A[0]自己是一个有序区,A[1, 2, ...N-1]是无序区。程序必须从i = 1开始,直到i = N-1为止,每次将A[i]插入到有序区中。

    插入排序与打扑克摸牌时的理牌过程很相似,当摸来第一张牌时,不需要排序,本身就是排好的(就一张),从第二张开始,每次摸来一张牌,必须插入到原来有序的扑克牌中的适当位置,而为了找到这个适当位置,需要将新摸来的牌与手中的牌进行比较。

    基本的插入排序:

    首先在有序区A[0,1,...i-1]中查找A[i]应该插入的位置k0 <= k <= i-1),然后将A[k,k+1,...i-1]中的数据各自后移一个位置,腾出位置k插入A[i]

    若有序区所有数据均小于A[i]时,A[i]就应该在原位置不变,不需要插入。

    改进后的插入排序:

    将待插入的数据A[i]自右至左依次与有序区的数据A[i-1,i-2,...0]进行比较,若A[i]小于某数据A[j],则A[j]后移一个位置,继续与前面的数据比较......直到遇到比A[i]小的数据或前面已没有数据,则插入位置确定。

    若碰到一个数据A[j]A[i]小,则A[i]应插入到位置j+1

    A[i-1]A[i]小,则A[i]位置不变。

    若所有数据都比A[i]大,则A[i]应插入到位置0

    下面是改进后插入排序的代码:

    #define  N 10

    #include <stdio.h>

    int main()

    {int  a[N] = {3,5,2,9,7,4,8,1,0,6}, i, j, t;

     for(i = 1; i <= N-1; i++){

       t = a[i];                     //保存a[i],因a[i]会被覆盖

    for(j = i-1; a[j]>t && j>=0; j--) // a[j]>t不能写成a[j]> a[i]

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

       a[j+1] = t;

    }

    for(i = 0; i <= N-1; i++)

       printf(“%3d”, a[i] );

     printf(“\n”);

     getch();

    return 0;

    }


    展开全文
  • 满意答案jch18882013.02.28采纳率:44%等级:11已帮助:6867人#include"stdio.h"//从小到大排序void main(){int i,j,t,str[10];printf("请给数组str赋初值:\n");for(i=0;i<10;i++) //对数组进行初始化scanf("%d",...

    满意答案

    dcebd7a0de6265b6ccae5ead692f1eab.png

    jch1888

    2013.02.28

    dcebd7a0de6265b6ccae5ead692f1eab.png

    采纳率:44%    等级:11

    已帮助:6867人

    #include"stdio.h"

    //从小到大排序

    void main()

    {

    int i,j,t,str[10];

    printf("请给数组str赋初值:\n");

    for(i=0;i<10;i++) //对数组进行初始化

    scanf("%d",str[i]);

    for(j=1;j<10;j++) //开始进行排序

    for(i=0;i<10-j;i++)

    if(str[i]>str[i+1]) // //因为是从小到大所以借助中间量t将小的数提前

    {

    t=str[i];

    str[i]=str[i+1];

    str[i+1]=t;

    }

    printf("排序后的数组为:\n"); //打印排序后的数组

    for(i=0;i<10;i++)

    printf("%d",str[i]);

    }

    #include"stdio.h"

    //从大到小进行排序

    void main()

    {

    int i,j,t,str[10];

    printf("请给数组str赋初值:\n");

    for(i=0;i<10;i++) //对数组进行初始化

    scanf("%d",str[i]);

    for(j=1;j<10;j++) //开始进行排序

    for(i=0;i<10-j;i++)

    if(str[i]

    {

    t=str[i];

    str[i]=str[i+1];

    str[i+1]=t;

    }

    printf("排序后的数组为:\n"); //打印排序后的数组

    for(i=0;i<10;i++)

    printf("%d",str[i]);

    }

    答案补充

    希望可以帮到您....88小什么不懂还可以问小弟

    57分享举报

    展开全文
  • C语言冒泡法排序大小

    2021-06-25 16:48:45
    4286 3185 2895 3550 2745按大小排序
  • 满意答案fdsloeoel7el推荐于 2016.01.21采纳率:46%等级:12已帮助:8456人#include #include const int M = 5;const int N = 4;const int L = 3;void main(){int i = 0,j = 0,k;FILE *fp1=NULL,*fp2=NULL;...
  • #include#includetypedef int bool;#ifndef false#define false 0#endif#ifndef true#define true 1#endifvoid exchange(int *a, int *b){*a = *a + *b;*b = *a - *b;*a = *a - *b;}void BubbleSort1(int a[], int n...
  • C语言冒泡法排序[经典]

    万次阅读 2013-05-16 16:45:37
    C语言冒泡法排序[经典] 冒泡法排序的算法思想是:  通过无序区中相邻记录关键字间的比较和位置交换,使关键字的记录如气泡一般逐渐往上“漂浮”至“水面”。整个算法是从最下面的记录开始,对每两相邻的关键字...
  • C语言冒泡法排序 第一种类型 #include<stdio.h> int main(){ int a[10]={4,5,2,8,9,3,1,0,11,32}; int i,j,t; printf(“the unsort numbers :\n”); for(i=0;i<10;i++) printf("%d “,a[i]); printf(”\n")...
  • C语言冒泡法排序内循环次数问题

    千次阅读 2019-07-02 21:07:09
    本人在重新回顾C语言冒泡法排序过程中发现了一很有意思的点,也可能是大家学习的时候没有注意到的。特地写下来分享给大家。 首先冒泡法的基本思想是要在每次比较时将最大的“沉底”,这过程需要比较n-1趟...
  • c语言冒泡排序的方法:先选定第一数字为最大再对数字两两进行比较,得到两者之间的最大值,依次比较。具体代码实现如下:#include #include using namespace std;void srandData(int *, int );//产生随机数的函数...
  • 冒泡法10个整数(这10个整数可随机生成,可初始化,也可以逐个从键盘读入)排序。然后输入一个数,将该数插入到数组中,使插入后的数组仍然有序。并输出插入后的数组。</p>
  • 匿名用户8级2012-07-25 回答#include<stdio.h> //链接标准头文件#define N 5 //定义常量N并赋值为5void main() //... //定义N维(N=5,也就是五维啦^^)整形数组和整形变量tempprintf("输入5个数\"); //在屏...
  • #include<... int a[10],i,j,t; printf("Input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=1;j<=9;j++) for(i=0;i<=9-j;i++) if(a[i]>a[i+1]){
  • //冒泡法从小到大排序 void bubble(int arry[],int n){ //定义int型 arry数组,内部有n元素 int temp; for(int i=0;i<=n-2;i++){ //循环n-1次 if(arry[i]>arry[i+1]){ temp=arry[i]; ...
  • C语言冒泡排序法

    2015-06-20 13:28:43
    C语言冒泡排序法,亲测有效,可直接使用哦 欢迎下载
  • C语言冒泡法排序,输出老是错误。请指教0nlruxm2013.10.01浏览14次分享举报在C++环境下编了这程序 #include #define SN 2 //学生人数 struct student { long num; char name[20]; float score[3]; }st[SN]; void ...
  • C语言冒泡排序法心得

    2020-09-02 21:39:22
    相信学过C语言的朋友都知道,在C语言中,常用的排序算法有:冒泡排序、快速排序、插入排序、选择排序、希尔排序、堆排序以及归并排序等等。...在这里呢,主要是想和大家一起来探讨探讨C语言冒泡排序法
  • C语言冒泡排序法的详细注释C语言冒泡排序法的详细注释?起泡排序法的基本思想是:对于一个待排序的序列(假设按升序排序),从左向右依次比较相邻的两个数,如果左边的数大,则交换两个数以使右边的数大。这样比较、...
  • 输入10个数,用冒泡排序法按由小到大顺序排序并输如下参考: #包括< stdio, h > Intmain() { Inta[10]={0}; IntI=0,j=0,t=0; For (I = 0;我< 10;我+ +) {scanf (" % d ", & a [I]);} For...
  • C语言冒泡排序法……

    2009-09-25 10:52:11
    冒泡排序 C语言冒泡排序 C语言冒泡排序 C语言冒泡排序 C语言
  • 话题:用冒泡法10个整数排序10个整数用scanf函数输入回答:举了例:一数组:3,2,5,1,4从小到大排序从左侧开始,逐对比较32,3,2的位置,数组变为2,3,5,1,4351,5,1的位置,数组变为2,3,1,5,454,5,4的位置,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,273
精华内容 4,909
关键字:

c语言冒泡法排序10个数

c语言 订阅