c語言直接排序算法,C語言的排序算法

本文目錄一覽:

c語言的兩種排序?

1、選擇排序法

要求輸入10個整數,從大到小排序輸出

輸入:2 0 3 -4 8 9 5 1 7 6

輸出:9 8 7 6 5 3 2 1 0 -4

代碼:

#includelt;stdio.hgt;

int main(int argc,const char*argv[]){

int num[10],i,j,k,l,temp;

//用一個數組保存輸入的數據

for(i=0;ilt;=9;i++)

{

scanf(“%d”,numlt;igt;);

}

//用兩個for嵌套循環來進行數據大小比較進行排序

for(j=0;jlt;9;j++)

{

for(k=j+1;klt;=9;k++)

{

if(num[j]lt;num[k])//num[j]lt;num[k]

{

temp=num[j];

num[j]=num[k];

num[k]=temp;

}

}

}

//用一個for循環來輸出數組中排序好的數據

for(l=0;llt;=9;l++)

{

printf(“%d”,num[l]);

}

return 0;

}

2、冒泡排序法

要求輸入10個整數,從大到小排序輸出

輸入:2 0 3-4 8 9 5 1 7 6

輸出:9 8 7 6 5 3 2 1 0-4

代碼:

#includelt;stdio.hgt;

int main(int argc,const char*argv[]){

//用一個數組來存數據

int num[10],i,j,k,l,temp;

//用for來把數據一個一個讀取進來

for(i=0;ilt;=9;i++)

{

scanf(“%d”,numlt;igt;);

}

//用兩次層for循環來比較數據,進行冒泡

for(j=0;jlt;9;j++)

{

for(k=0;klt;9-j;k++)

{

if(num[k]lt;num[k+1])//num[k]lt;num[k+1]

{

temp=num[k];

num[k]=num[k+1];

num[k+1]=temp;

}

}

}

//用一個for循環來輸出數組中排序好的數據

for(l=0;llt;=9;l++)

{

printf(“%d”,num[l]);

}

return 0;

}

擴展資料:

return 0代表程序正常退出。return是C++預定義的語句,它提供了終止函數執行的一種方式。當return語句提供了一個值時,這個值就成為函數的返回值。

return語句用來結束循環,或返回一個函數的值。

1、return 0,說明程序正常退出,返回到主程序繼續往下執行。

2、return 1,說明程序異常退出,返回主調函數來處理,繼續往下執行。return 0或return 1對程序執行的順序沒有影響,只是大家習慣於使用return(0)退出子程序而已。

c語言三種排序

常用的c語言排序算法主要有三種即冒泡法排序、選擇法排序、插入法排序。

一、冒泡排序冒泡排序:

是從第一個數開始,依次往後比較,在滿足判斷條件下進行交換。代碼實現(以降序排序為例)

#includestdio.h

int main()

{

int array[10] = { 6,9,7,8,5,3,4,0,1,2 };

int temp;

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

{//循環次數

for (int j = 0; j 10 – i-1; j++)

{

if (array[j] array[j+1])

{//前面一個數比後面的數大時發生交換 temp = array[j];

array[j] = array[j+1];

array[j + 1] = temp;

}

}

} //打印數組 for (int i = 0; i 10; i++) printf(“%2d”, array[i]); return 0;}}

二、選擇排序以升序排序為例:

就是在指定下標的數組元素往後(指定下標的元素往往是從第一個元素開始,然後依次往後),找出除指定下標元素外的值與指定元素進行對比,滿足條件就進行交換。與冒泡排序的區別可以理解為冒泡排序是相鄰的兩個值對比,而選擇排序是遍曆數組,找出數組元素與指定的數組元素進行對比。(以升序為例)

#includestdio.h

int main()

{

int array[10] = { 6,9,7,8,5,3,4,0,1,2 };

int temp, index;

for (int i = 0; i 9; i++) {

index = i;

for (int j = i; j 10; j++)

{

if (array[j] array[index])

index = j;

}

if(i != index)

{

temp = array[i];

array[i] = array[index];

array[index] = temp;

}

for(int i=0;i10:i++)

printf(“%2d”array[i])

return 0;

}

三、快速排序

是通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

void QuickSort(int* arr, int size)

{

int temp, i, j;

for(i = 1; i size; i++)

for(j=i; j0; j–)

{

if(arr[j] arr[j-1])

{

temp = arr[j];

arr[j]=arr[j-1];

arr[j-1]=temp;

}

}

}

c語言各種排序算法

1:桶排序;

2:堆排序;

3:冒泡排序;

4:快速排序

5:選擇排序;

6:插入排序;

7:希爾排序;

8:歸併排序;

9:基數排序;

10:計數排序;

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/285896.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 16:06
下一篇 2024-12-22 16:06

相關推薦

  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python實現爬樓梯算法

    本文介紹使用Python實現爬樓梯算法,該算法用於計算一個人爬n級樓梯有多少種不同的方法。 有一樓梯,小明可以一次走一步、兩步或三步。請問小明爬上第 n 級樓梯有多少種不同的爬樓梯…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Harris角點檢測算法原理與實現

    本文將從多個方面對Harris角點檢測算法進行詳細的闡述,包括算法原理、實現步驟、代碼實現等。 一、Harris角點檢測算法原理 Harris角點檢測算法是一種經典的計算機視覺算法…

    編程 2025-04-29
  • 數據結構與算法基礎青島大學PPT解析

    本文將從多個方面對數據結構與算法基礎青島大學PPT進行詳細的闡述,包括數據類型、集合類型、排序算法、字符串匹配和動態規劃等內容。通過對這些內容的解析,讀者可以更好地了解數據結構與算…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • 瘦臉算法 Python 原理與實現

    本文將從多個方面詳細闡述瘦臉算法 Python 實現的原理和方法,包括該算法的意義、流程、代碼實現、優化等內容。 一、算法意義 隨着科技的發展,瘦臉算法已經成為了人們修圖中不可缺少…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29

發表回復

登錄後才能評論