常用的C語言排序算法(兩種)
1.
要求輸入10個整數(shù),從大到小排序輸出
輸入:2 0 3 -4 8 9 5 1 7 6
輸出:9 8 7 6 5 3 2 1 0 -4
解決方法:選擇排序法
實現(xiàn)代碼如下:
#include <stdio.h>
int main(int argc, const char * argv[]) {
int num[10],i,j,k,l,temp;
//用一個數(shù)組保存輸入的數(shù)據(jù)
for(i=0;i<=9;i++)
{
scanf("%d",&num[i]);
}
//用兩個for嵌套循環(huán)來進行數(shù)據(jù)大小比較進行排序
for(j=0;j<9;j++)
{
for(k=j+1;k<=9;k++)
{
if(num[j]<num[k]) //num[j]<num[k]
{
temp=num[j];
num[j]=num[k];
num[k]=temp;
}
}
}
//用一個for循環(huán)來輸出數(shù)組中排序好的數(shù)據(jù)
for(l=0;l<=9;l++)
{
printf("%d ",num[l]);
}
return 0;
}
2.
要求輸入10個整數(shù),從大到小排序輸出
輸入:2 0 3 -4 8 9 5 1 7 6
輸出:9 8 7 6 5 3 2 1 0 -4
解決方法:冒泡排序法
實現(xiàn)代碼如下:
#include <stdio.h>
int main(int argc, const char * argv[]) {
//用一個數(shù)組來存數(shù)據(jù)
int num[10],i,j,k,l,temp;
//用for來把數(shù)據(jù)一個一個讀取進來
for(i=0;i<=9;i++)
{
scanf("%d",&num[i]);
}
//用兩次層for循環(huán)來比較數(shù)據(jù),進行冒泡
for(j=0;j<9;j++)
{
for(k=0;k<9-j;k++)
{
if(num[k]<num[k+1]) //num[k]<num[k+1]
{
temp=num[k];
num[k]=num[k+1];
num[k+1]=temp;
}
}
}
//用一個for循環(huán)來輸出數(shù)組中排序好的數(shù)據(jù)
for(l=0;l<=9;l++)
{
printf("%d ",num[l]);
}
return 0;
}
以上所述是小編給大家介紹的常用的C語言排序算法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
C++成員函數(shù)如何當(dāng)作回調(diào)函數(shù)同時傳遞this指針
這篇文章主要介紹了C++成員函數(shù)如何當(dāng)作回調(diào)函數(shù)同時傳遞this指針,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11
Qt5.9實現(xiàn)簡單的多線程實例(類QThread)
Qt開啟多線程,主要用到類QThread。用一個類繼承QThread,然后重新改寫虛函數(shù)run()。具有一定的參考價值,感興趣的可以了解一下2021-09-09
Qt網(wǎng)絡(luò)編程實現(xiàn)TCP通信
這篇文章主要為大家詳細(xì)介紹了Qt網(wǎng)絡(luò)編程實現(xiàn)TCP通信,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08

