C語言冒泡排序法的實現(升序排序法)
任務代碼:
數字的排序:
#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;
}
字符排序:
#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;
}
用函數來解決這個問題:
#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;
}
執(zhí)行情況:
知識總結:
冒泡排序法:也叫升序排序法,但是相比起二分法查找只能應用于有序數列,二如何將一個無序數列變的有序就可以使用冒泡排序法!??!
對上面的過程進行總結:
該思想體現在成續(xù)上的解法是:
實例:
冒泡排序不僅僅可以應用于數字同樣可以應用于字符字母的快速排序:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。
上一篇:Visual Studio Code (vscode) 配置 C / C++ 環(huán)境的流程
欄 目:C語言
下一篇:C++利用函數動態(tài)創(chuàng)建二維數組
本文標題:C語言冒泡排序法的實現(升序排序法)
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/200.html
您可能感興趣的文章
- 04-02c語言函數調用后清空內存 c語言調用函數刪除字符
 - 04-02c語言的正則匹配函數 c語言正則表達式函數庫
 - 04-02func函數+在C語言 func函數在c語言中
 - 04-02c語言中對數函數的表達式 c語言中對數怎么表達
 - 04-02c語言用函數寫分段 用c語言表示分段函數
 - 04-02c語言編寫函數冒泡排序 c語言冒泡排序法函數
 - 04-02c語言沒有round函數 round c語言
 - 04-02c語言分段函數怎么求 用c語言求分段函數
 - 04-02C語言中怎么打出三角函數 c語言中怎么打出三角函數的值
 - 04-02c語言調用函數求fibo C語言調用函數求階乘
 


閱讀排行
本欄相關
- 04-02c語言函數調用后清空內存 c語言調用
 - 04-02func函數+在C語言 func函數在c語言中
 - 04-02c語言的正則匹配函數 c語言正則表達
 - 04-02c語言用函數寫分段 用c語言表示分段
 - 04-02c語言中對數函數的表達式 c語言中對
 - 04-02c語言編寫函數冒泡排序 c語言冒泡排
 - 04-02c語言沒有round函數 round c語言
 - 04-02c語言分段函數怎么求 用c語言求分段
 - 04-02C語言中怎么打出三角函數 c語言中怎
 - 04-02c語言調用函數求fibo C語言調用函數求
 
隨機閱讀
- 04-02jquery與jsp,用jquery
 - 08-05DEDE織夢data目錄下的sessions文件夾有什
 - 01-10C#中split用法實例總結
 - 08-05織夢dedecms什么時候用欄目交叉功能?
 - 01-10delphi制作wav文件的方法
 - 01-10使用C語言求解撲克牌的順子及n個骰子
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 - 01-10SublimeText編譯C開發(fā)環(huán)境設置
 - 08-05dedecms(織夢)副欄目數量限制代碼修改
 - 01-11ajax實現頁面的局部加載
 


