#include <stdio.h> //声明选择排序的函数 void sort(int*array,int n); //主函数 int main() { int n; int i; scanf("%d",&n); int num[n]; //输入数组 for(i=0;i<n;i++) scanf("%d",&num[i]); sort(num,n); for(i=0;i<n;i++){ printf("%d ",num[i]); } return 0; } //选择排序的函数 void sort(int*array,int n){ int*top=array; int*seek=top+1; int cot; while(top-array<n-1){ seek=top+1; while(seek-array<n){ if(*top>*seek){ int temp=*top; *top=*seek; *seek=temp; } seek++; } top++; } }
通过两个while函数遍历数组中的数字进行排序。
第一个while控制top指针的移动;第二个while控制seek指针的移动,seek每次移动后都与top指针所指的值进行比较,如果top指针所指的值更大,则进行交换。经过n-1次遍历后,便能得到最后的排序结果。