新聞中心
C語言編寫函數(shù)用冒泡法對數(shù)組中10個整數(shù)由大到小排序,并在主函數(shù)中調(diào)用
#include stdio.h
創(chuàng)新互聯(lián)長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為資陽企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè),資陽網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
void fun(int *num)
{
int temp;
for(int i=0; i10; ++i)
for(int j=0; j10-i-1; ++j)
{
if(num[j]num[j+1])
{
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
void main()
{
int num[10]={3,2,4,1,5,6,4,3,9,8};
fun(num);
for(int i=0; i10; ++i)
printf("%-2d",num[i]);
}
1. 編寫冒泡排序和選擇排序的程序,主函數(shù)中編寫菜單調(diào)用排序函數(shù)。C語言
//C語言示例代碼如下
#include?stdio.h
#define?N?10
//冒泡排序(升序)
void?bubble_sort(int?a[],int?n)
{
int?i,j;??//j表示趟數(shù),i表示第j趟兩兩比較的次數(shù)
int?tmp;?//臨時變量
for(i=0;in-1;i++)
for(j=0;jn-1-i;j++)
{
if(a[j]??a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
//選擇排序算法,按從小到大順序
void?select_sort(int?*array,int?n)
{
int?i,j,k;
int?tmp;
for(i=0;in-1;i++)
{
k=i;??//開始一趟選擇排序,假定第i個元素是后面n-i+1個未排序的元素中最小的元素
for(j=i+1;jn;j++)
{
if(array[k]??array[j])?//如果發(fā)現(xiàn)比當前最小元素還小的元素,則更新記錄最小元素的下標k
k=j;
}
//如果最小元素的下標不是后面n-i+1的未排序序列的第一個元素,則需要交換第i個元素和后面找到的最小元素的位置
if(k?!=?i)
{
tmp=array[k];
array[k]=array[i];
array[i]=tmp;
}
}
}
int?main()
{
int?arr[N];
int?i;
printf("輸入數(shù)組元素:?");
for(i=0;iN;i++)
scanf("%d",arr[i]);
bubble_sort(arr,N);??//調(diào)用冒泡排序函數(shù)
printf("輸出排序后的數(shù)組元素:?");
for(i=0;iN;i++)
printf("%d?",arr[i]);
printf("\n輸入數(shù)組元素:?");
for(i=0;iN;i++)
scanf("%d",arr[i]);
select_sort(arr,N);??//調(diào)用選擇排序函數(shù)
printf("輸出排序后的數(shù)組元素:?");
for(i=0;iN;i++)
printf("%d?",arr[i]);
printf("\n");
return?0;
}
C語言冒泡排序法代碼
冒泡排序是排序算法的一種,思路清晰,代碼簡潔,常被用在大學(xué)生計算機課程中?!懊芭荨边@個名字的由來是因為越大的元素會經(jīng)由交換慢慢“浮”到數(shù)列的頂端,故名。這里以從小到大排序為例進行講解?;舅枷爰芭e例說明
冒泡排序的基本思想就是不斷比較相鄰的兩個數(shù),讓較大的元素不斷地往后移。經(jīng)過一輪比較就,選出最大的數(shù);經(jīng)過第2輪比較,就選出次大的數(shù),以此類推。下面以對 3 2 4 1 進行冒泡排序說明。
1.這個算法用rand函數(shù)產(chǎn)生新的要排序的數(shù)據(jù),與已有的有序數(shù)列中的數(shù)據(jù)依次比較,如果遇到比他大的數(shù)據(jù),就從該數(shù)據(jù)開始,一直交換到末尾,達到一個插入的效果。從而形成有序的數(shù)列。
2.此外,只用rand函數(shù)并不能達到真正隨機的效果。如果要實現(xiàn)真正隨機的效果,還要配合srand函數(shù)才行。
3.具體代碼如下:#include "stdio.h"#include "stdlib.h"void main(){int a[10],temp,r; printf("請輸入一個種子\n"); scanf("%d",r);srand(r); for(int i=0;i9;i++) 。
標題名稱:冒泡法排序c語言函數(shù)調(diào)用 冒泡排序c語言csdn
標題網(wǎng)址:http://www.dlmjj.cn/article/dojopji.html