C語言氣泡排序將一個陣列按照從小到大進行排序

C語言氣泡排序將一個陣列按照從小到大進行排序

例如 int a[10] = {0,5,2,3,6,9,8,7,4,1}
對其10個整數由小到大進行排序
思想:氣泡排序

實現一:

#include<stdio.h>
int main()
{
int i = 0;
int a[10] = {0,5,2,3,6,9,8,7,4,1};
int j = 0;
int tmp = 0;
int m = sizeof(a) / sizeof(a[0]);  //s陣列大小
for (i=0; i<m-1; i  )    //比較m-1次
{
for (j = 0; j < m-i-1; j  )   // 最後一次比較a[m-i-1]與a[m-i-2]
{
if (a[j]>a[j 1])    //如果a[j]比a[j 1]大則交換內容
{
tmp = a[j 1];
a[j 1] = a[j];
a[j] = tmp;
}
}
}
for (i=0; i < m; i  )
{
printf(" %d ", a[i]);   //列印
}
printf(" \n ");
return 0;
}

這裡寫圖片描述

實現二:
自定義sort函式

#include<stdio.h>
void sort(int a[], int m)
{
int i = 0;
int j = 0;
int tmp = 0;
for (i = 0; i<m - 1; i  )
{
for (j = 0; j < m - i - 1; j  )
{
if (a[j]>a[j   1])
{
tmp = a[j   1];
a[j   1] = a[j];
a[j] = tmp;
}
}
}
}
int main()
{
int i = 0;
int a[10] = {0,5,2,3,6,9,8,7,4,1};
int m = sizeof(a) / sizeof(a[0]);
sort(a, m);
for (i=0; i < m; i  )
{
printf(" %d ", a[i]);
}
printf(" \n ");
return 0;
}