C语言实现的排序
冒泡排序
比较相邻的两个元素,若顺序不对,则将其调换
通过一遍排序,较大的数会排到最后(沉到底部)
两层循环,外层循环控制遍数,内层循环控制每一遍内的排序。
完整代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<stdio.h> int Readscorce(int Num[]); void BubbleSort(int Num[],int n); #define SIZE 50 int main() { int Num[SIZE]; int n,i; n=Readscorce(Num); BubbleSort(Num,n); for(i=0;i<n;i++) { printf("%d ",Num[i]); } getchar(); getchar(); return 0; } int Readscorce(int Num[]) { int i=-1; do { i++; printf("Please Enter a number:"); scanf("%d",&Num[i]); }while(Num[i]>=0); return i; } void BubbleSort(int Num[],int n) { int i,j,temp; for(i=0;i<n-1;i++) { for(j=1;j<n-i;j++)//减去后面已经排好的元素 { if(Num[j]<Num[j-1]) { temp=Num[j-1]; Num[j-1]=Num[j]; Num[j]=temp; } } } }
交换法排序
进行一遍后最小的数(或最大的数)会排在较前的位置
两层循环,外层循环控制遍数,内层循环控制每一遍内的排序。
选择法排序
找出最小数的下标,将最小数下标与首元素下标比较难
归并排序法