这个应该用起泡法排序算法。
#include<stdio.h>
int main(){
int a[10];int i,j,k;
printf("input 10 numbers:\n");
for(i=0;i<10;i++){//输入十个数,一次循环输入10次
scanf("%d",&a[i]);
printf("\n");//换行
for(j=0;j<9;j++)//从小到大换行经典方法四行
for(i=0;i<9;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf(”the sorted numbers:\n”);
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
}
结果演示:
思路:利用冒泡排序,重复地走访过要排序的数列,一次比较两个元素,将小的放到前面并输出。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
排序方法大致有如下几种:
冒泡排序(bubble sort) — O(n^2)
鸡尾酒排序(Cocktail sort,双向的冒泡排序) — O(n^2)
插入排序(insertion sort)— O(n^2)
桶排序(bucket sort)— O(n); 需要 O(k) 额外空间
计数排序(counting sort) — O(n+k); 需要 O(n+k) 额外空间
合并排序(merge sort)— O(nlog n); 需要 O(n) 额外空间
原地合并排序— O(n^2)
二叉排序树排序 (Binary tree sort) — O(nlog n)期望时间; O(n^2)最坏时间; 需要 O(n) 额外空间
鸽巢排序(Pigeonhole sort) — O(n+k); 需要 O(k) 额外空间
基数排序(radix sort)— O(n·k); 需要 O(n) 额外空间
Gnome 排序— O(n^2)
图书馆排序— O(nlog n) with high probability,需要 (1+ε)n额外空间
以简单的冒泡排序为例: