排序數(shù)組可以使用冒泡算法:如果前一個(gè)數(shù)據(jù)比后一個(gè)大,則交換。

創(chuàng)新互聯(lián)公司長(zhǎng)期為上1000+客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為新河企業(yè)提供專(zhuān)業(yè)的網(wǎng)站建設(shè)、成都做網(wǎng)站,新河網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
#include?stdio.h
//?使用冒泡算法升序數(shù)組src
void?sort(int?*src,?int?len)
{
int?tem;
for?(int?i?=?0;?i??len;?i++)
{
for?(int?j?=?0;?j??len?-?i?-?1;?j++)?//?每循環(huán)一次,則少一次
if?(src[j]??src[j+1])??//?如果前一個(gè)數(shù)據(jù)比后一個(gè)大,則交換
{
tem?=?src[j];
src[j]?=?src[j+1];
src[j+1]?=?tem;
}
}
}
int?main()
{
int?a[10]?=?{2,?5,?9,?6,?4,?7,?8,?1,?0,?3};
sort(a,?10);??//?排序
for?(int?i?=?0;?i??10;?i++)?//?輸出結(jié)果
printf("%d?",?a[i]);
return?0;
}
#includestdio.h
#define?N?100
void?paixu(int?*,?int?*,?int);//聲明函數(shù)
int?main()
{
int?a[N],c[N];
int?i,n=0;
printf("請(qǐng)輸入n個(gè)整數(shù):");
for(i=0;;i++)
{
scanf("%d",a[i]);
n++;
if(getchar()=='\n')
break;
}
paixu(a,?c,?n);//調(diào)用函數(shù),數(shù)組只需給出數(shù)組名
return?0;
}
void?paixu(int?a[N],int?c[N],?int?n)
{
int?i,j,s=0;
for(i=0;in;i++)
{
c[i]=0;
}
for(i=0;in;i++)
for(j=i+1;jn;j++)
{
if(a[i]==a[j])
c[i]=1;
}
for(i=0;in;i++)
{
s=1;
for(j=0;jn;j++)
{
if(c[j]==0a[i]a[j])
{
s++;
}
}
printf("%d?",s);
}
}
C語(yǔ)言將數(shù)組元素大小排序方法:
以下使用的是冒泡排序法實(shí)線(xiàn)數(shù)組從小到大排序。
思想:每次相鄰兩個(gè)數(shù)比較,若升序,則將大的數(shù)放到后面,一次循環(huán)過(guò)后,就會(huì)將最大的數(shù)放在最后。
10、2、3、4、5、6、9、8、7、1是輸入的待排序的數(shù)列,經(jīng)過(guò)第一次排序,將最大的,10放在最后,第二次排序,將剩下的2、3、4、5、6、9、8、7、1進(jìn)行冒泡,將當(dāng)前最大的9放在倒數(shù)第二的位置,以此類(lèi)推。
以下是具體代碼:
#include stdio.h
int main(){
int nums[10] = {10, 2, 3, 4, 5, 6, 9, 8, 7, 1};
int i, j, temp, isSorted;
//優(yōu)化算法:最多進(jìn)行 n-1 輪比較
for(i=0; i10-1; i++){
isSorted = 1;? //假設(shè)剩下的元素已經(jīng)排序好了
for(j=0; j10-1-i; j++){
if(nums[j] nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
isSorted = 0;? //一旦需要交換數(shù)組元素,就說(shuō)明剩下的元素沒(méi)有排序好
}
}
if(isSorted) break; //如果沒(méi)有發(fā)生交換,說(shuō)明剩下的元素已經(jīng)排序好了
}
for(i=0; i10; i++){
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
擴(kuò)展資料:
其他將數(shù)組從小到大排序的算法
以下使用的是選擇排序法實(shí)現(xiàn)數(shù)組從小到大排序。
思想:從第一個(gè)數(shù)開(kāi)始,每次和后面剩余的數(shù)進(jìn)行比較,若升序,則如果后邊的數(shù)比當(dāng)前數(shù)字小,進(jìn)行交換,和后面的所有的數(shù)比較、交換后,就會(huì)將當(dāng)前的最小值放在當(dāng)前的位置
輸入的序列為10、2、3、4、5、6、9、8、7、1進(jìn)行一次排序后將最小的數(shù)放在了第一位(a[0]與它后面的所有數(shù)進(jìn)行比較,若a[0]比后面的數(shù)大,進(jìn)行交換),以此類(lèi)推。
以下是具體代碼:
#include stdio.h
int main(void){
int a[1001];
int n,i,j,t;
scanf("%d",n);//n為要排序的數(shù)的個(gè)數(shù)
//輸入需要排序的數(shù)
for(i=0;in;++i)
scanf("%d",a+i);
//接下來(lái)進(jìn)行排序
for(i=0;in-1;++i)//因?yàn)槊看涡枰蚢[i]后面的數(shù)進(jìn)行比較,所以到a[n-2](倒數(shù)第2個(gè)元素)就行
{
for(j=i+1;jn;++j)//j從i后一個(gè)開(kāi)始,a[i]與a[j]進(jìn)行比較
{
if(a[i]a[j])//a[i]為當(dāng)前值,若是比后面的a[j]大,進(jìn)行交換
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}//每排序一次,就會(huì)將a[i](包括a[i])之后的最小值放在a[i]的位置
for(j=0;jn;++j)
printf("%-5d",a[j]);
printf("\n\n");
}
return 0;
}
排序數(shù)組可以使用冒泡算法:如果前一個(gè)數(shù)據(jù)比后一個(gè)大,則交換。
{
int i,j,t,a[6];
printf("Please input 6 integers:\n");
for(i=0;i6;i++)
scanf("%d",a[i]);
for(i=0;i5;i++) /* 冒泡法排序 */
for(j=0;j6-i-1;j++)
if(a[j]a[j+1])
{t=a[j];/* 交換a[i]和a[j] */
a[j]=a[j+1];
a[j+1]=t;
}
優(yōu)點(diǎn):
簡(jiǎn)潔緊湊、靈活方便:C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書(shū)寫(xiě)形式自由,區(qū)分大小寫(xiě)。把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。C 語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。
以上內(nèi)容參考:百度百科-c語(yǔ)言程序設(shè)計(jì)
當(dāng)前題目:c語(yǔ)言函數(shù)數(shù)字大小排列 如何用c語(yǔ)言排列數(shù)的大小
標(biāo)題鏈接:http://www.chinadenli.net/article20/hpigjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、搜索引擎優(yōu)化、Google、標(biāo)簽優(yōu)化、網(wǎng)站排名、用戶(hù)體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)