2024-01-10 05:22来源:m.sf1369.com作者:宇宇
#include#define MAX 10 int main() { int num[MAX+1]; int i, j; int temp; char mark=0; printf(请输入%d个整数: ,MAX); for(i=0; inum[j]) { temp=num[i]; num[i]=num[j]; num[j]=temp; } } } printf(排序后: ); for(i=0; itemp) { for(j=MAX; j>i; j--) { num[j]=num[j-1]; } num[i]=temp; mark=1; break; } } if(!mark) num[MAX]=temp; printf(插入后: ); for(i=0; i<=MAX; i++) { printf(%d ,num[i]); } putchar('\n'); return 0; }
快速排序,冒泡排序,选择排序,归并排序,堆排序,桶排序。。。。。。
举例两个。。。选择排序:
for(int i = 1 ; i < n ; i++)
for(int j = i + 1 ; j <= n ; j++)
if(a[i] < a[j]) //要想反序就把小于号改成大于号
swap(a[i], a[j]);
快速排序,只能用函数了。。。:
void qsort(int a[], int p, int q)
{
int x = p - 1;
for(int i = p ; i < q ; i++)
if(a[i] > a[q]) //反序和选择排序一样
swap(a[++x], a[i]);
swap(a[++x], a[q]);
if(x - 1 > p)
qsort(a, p, x - 1);
if(x + 1 > q)
qsort(a, x + 1, q);
}