gpt4 book ai didi

C语言冒泡排序法的实现(升序排序法)

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章C语言冒泡排序法的实现(升序排序法)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

任务代码:

数字的排序:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
 
#define SIZE 10
int main()
{
   int a[SIZE]={12 ,43,9,13,67,98,101,89,3,35}; //十个数的无序数列
   int i,j,t;
   printf ( "此程序使用冒泡排序法排列无序数列!\n" );
   //冒泡排序
   for (i=0;i<10-1;i++) //n个数的数列总共扫描n-1次
   {
     for (j=0;j<10-i-1;j++) //每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束
     {
       if (a[j]>a[j+1]) //后一位数比前一位数小的话,就交换两个数的位置(升序)
       {
         t=a[j+1];
         a[j+1]=a[j];
         a[j]=t;
       }
     }
   }
 
   printf ( "排列好的数列是:\n" );
   //输出排列好得吃数列
   for (i=0;i<10;i++)
   {
 
     printf ( "%d " ,a[i]);
   }
   return 0;
}

字符排序:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
 
#define SIZE 10
int main()
{
   char a[SIZE]={ 'i' , 'l' , 'o' , 'v' , 'e' , 'y' , 'o' , 'u' , 'y' , 'x' }; //十个数的无序数列
   int i,j;
   char t;
   printf ( "此程序使用冒泡排序法排列无序数列!\n" );
   //冒泡排序
   for (i=0;i<10-1;i++) //n个数的数列总共扫描n-1次
   {
     for (j=0;j<10-i-1;j++) //每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束
     {
       if (a[j]>a[j+1]) //后一位数比前一位数小的话,就交换两个数的位置(升序)
       {
         t=a[j+1];
         a[j+1]=a[j];
         a[j]=t;
       }
     }
   }
 
   printf ( "排列好的字符组是:\n" );
   //输出排列好得吃数列
   for (i=0;i<10;i++)
   {
 
     printf ( "%c " ,a[i]);
   }
   return 0;
}

用函数来解决这个问题:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
 
 
void function( char a[], int ); //尤其注意,此处的函数声明必须是char a[],因为这里穿的是地址,不能仅仅使用char
 
int main()
{
   int i;
   char a[10]={ 'i' , 'l' , 'o' , 'v' , 'e' , 'y' , 'o' , 'u' , 'y' , 'x' }; //十个数的无序字符数列
   printf ( "此程序使用冒泡排序法排列无序数列!\n" );
   function(a,10); //调用冒泡排序
   printf ( "排列好的字符组是:\n" );
   //输出排列好得吃数列
   for (i=0;i<10;i++)
   {
 
     printf ( "%c " ,a[i]);
   }
   return 0;
}
 
void function( char a[], int m)
{
   //冒泡排序
   int i,j;
   char t;
   for (i=0;i<m-1;i++) //n个数的数列总共扫描n-1次
   {
     for (j=0;j<m-i-1;j++) //每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束
     {
       if (a[j]>a[j+1]) //后一位数比前一位数小的话,就交换两个数的位置(升序)
       {
         t=a[j+1];
         a[j+1]=a[j];
         a[j]=t;
       }
     }
   }
   return ;
}

执行情况:

C语言冒泡排序法的实现(升序排序法)

C语言冒泡排序法的实现(升序排序法)

知识总结:

冒泡排序法:也叫升序排序法,但是相比起二分法查找只能应用于有序数列,二如何将一个无序数列变的有序就可以使用冒泡排序法!!! 。

C语言冒泡排序法的实现(升序排序法)

对上面的过程进行总结:

C语言冒泡排序法的实现(升序排序法)

该思想体现在成续上的解法是:

C语言冒泡排序法的实现(升序排序法)

实例:

C语言冒泡排序法的实现(升序排序法)

冒泡排序不仅仅可以应用于数字同样可以应用于字符字母的快速排序:

C语言冒泡排序法的实现(升序排序法)

  。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://blog.csdn.net/Zzwtyds/article/details/76155893 。

最后此篇关于C语言冒泡排序法的实现(升序排序法)的文章就讲到这里了,如果你想了解更多关于C语言冒泡排序法的实现(升序排序法)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com