(第六列)C语言最简单的排序方法,这两种必须懂:冒泡排序和交换排序。

简介: (第六列)C语言最简单的排序方法,这两种必须懂:冒泡排序和交换排序。

题目:任意输入十个数,进行从大到小的排序。


第一种:交换排序法

#include<stdio.h>
int main()
{
  int i,j,k,middle,A[10];
  printf("请输入十个数:");
  for(i=0;i<10;i++){
    scanf("%d",&A[i]);       //将十个数存在数组A[10]中 
  } 
  for(i=0;i<9;i++)
  {
    for(j=i+1;j<10;j++)
    {
      if(A[i]<A[j])        //将两个数进行比较
      {
        middle=A[i];
        A[i]=A[j];
        A[j]=middle;   //较大的数交换前面,较小的放到后面
      } 
    }
  }
  printf("从大到小排序为:");
  for(i=0;i<10;i++)
  {
    printf("%d ",A[i]);       //打印新的排序方式
  }
  return 0;
}


排序的原理:先将第一个数分别与后面的数进行比较,如果后面有比第一个数大的,两者进行交换,否则不交换。第一轮结束,第一个数不变了,第二个数又开始与后面的数进行比较,一直这样循环下去。这种方法的效率比较低。


第二种:冒泡排序法

#include<stdio.h>
int main()
{
  int i,j,t,A[10];
  printf("请输入十个数:");
  for(i=0;i<10;i++){
    scanf("%d",&A[i]);    //利用for循环输入十个数
  }
  for(i=0;i<9;i++)           //进行9次外循环
    {
    for(j=0;j<9-i;j++)     //每次外循环进行9-i次比较
        {
      if(A[j]<A[j+1])    //相邻两个数进行比较
            {
        t=A[j];
        A[j]=A[j+1];
        A[j+1]=t;      //利用中间变量t进行两个数的交换
      }
    }
  }
  for(i=0;i<10;i++){
    printf("%d ",A[i]);
  }
  return 0;
}


排序原理:比较两个相邻的元素,如果前一个比后一个小,则交换位置。这样重复下去,从开始第一对数到最后一对数比较完,然后第一个数最大,最后一个数最小。


相关文章
|
2月前
|
搜索推荐 C语言
C语言冒泡排序(附源码和动态图)
冒泡排序是一种简单的排序算法,其基本思想是通过重复遍历待排序的数列,比较每对相邻元素的值,如果它们的顺序错误(即满足一定的排序条件,如从小到大排序时前一个元素大于后一个元素),就交换它们的位置。这个过程就像水底的气泡一样逐渐向上冒,因此得名“冒泡排序”。
|
3月前
|
C语言
【C语言刷题每日一题】一维数组的交换
【C语言刷题每日一题】一维数组的交换
|
3月前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
20 1
|
3月前
|
机器学习/深度学习 算法 C语言
详细介绍递归算法在 C 语言中的应用,包括递归的基本概念、特点、实现方法以及实际应用案例
【6月更文挑战第15天】递归算法在C语言中是强大力量的体现,通过函数调用自身解决复杂问题。递归涉及基本概念如自调用、终止条件及栈空间管理。在C中实现递归需定义递归函数,分解问题并设定停止条件。阶乘和斐波那契数列是经典应用示例,展示了递归的优雅与效率。然而,递归可能导致栈溢出,需注意优化。学习递归深化了对“分而治之”策略的理解。**
50 7
|
3月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
35 1
|
3月前
|
算法 搜索推荐 C语言
C语言冒泡排序介绍
C语言冒泡排序介绍
|
3月前
|
IDE 编译器 开发工具
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
21 0
|
3月前
|
C语言
【C语言刷题系列】交换整数的奇数位和偶数位
【C语言刷题系列】交换整数的奇数位和偶数位
|
3月前
|
C语言
【C语言刷题系列】交换两个变量的三种方式
【C语言刷题系列】交换两个变量的三种方式
|
3月前
|
C语言