1、快速排序(升序)
void quickSort(int sort[], int m, int n)
{
int k, t, i, j;
if (m < n)
{
i = m;
j = n + 1;
k = sort[m];
while (i < j)
{
for (i = i + 1; i < n; i++)
if (sort[i] >= k)
break;
for (j = j - 1; j > m; j--)
if (sort[j] <= k)
break;
if (i < j)
{
t = sort[i];
sort[i] = sort[j];
sort[j] = t;
}
}
t = sort[m];
sort[m] = sort[j];
sort[j] = t;
quickSort(sort, m, j - 1);
quickSort(sort, i, n);
}
}
2、選擇排序法(升序)
void choose (int a[], int n) // a[]是指針、等價*p,n是數組a中待排序元素的數量
{
int i, j, index, temp;
for( i = 0; i < n-1; i++) //
{
index = i ;
for (j = i + 1; j < n; j++ )
if (a[j] < a[index]) index = j ; // 比較大小,記錄最小元素的下標
temp = a[index] ; // 剩餘元素的最小值跟最靠前的元素交換
a[index] = a[i] ;
a[i] = temp ;
}
}
3、冒泡排序法(升序)
void bubble (int a[] , int n) // a[]是指針、等價*p,n是數組a中待排序元素的數量
{
int i , j , temp ;
for(i=0; i<n-1; i++)
for(j=0; j<(n-1)-i; j++)
if(a[j] > a[j+1]) // 後面的元素比較大
{
temp = a[j];
a[j] = a[j+1];
a[j+1]= temp;
}
}