选择排序

来源:互联网 发布:不可识别的数据库格式 编辑:程序博客网 时间:2024/05/07 12:33
选择排序算法思想:
1、首先进行第一遍排序,方法是:确定第一个数位基准数,认为它是最小数,然后依次在所有其他数种找比它小的数,如果有则交换,这样就找到第一个最小数。
2、第二遍排序时对除了第一个数之外的数据进行选择排序。。。
3、依次类推,进行N-1遍排序,便能够将N个数据排序</span>

在具体操作时,有两种方法,一是边比较边交换,二是边找边设立标记,最后交换。一下代码选择了第二种方法。


#include <stdio.h>////选择排序 int main(int argc, char *argv[]){int n,i,j,min,temp,k;scanf("%d",&n);int a[n];for(i=0;i<n;i++){scanf("%d",&a[i]);}for(i=0;i<n;i++){min=i;//设置最小的元素为i for(j=i+1;j<n;j++){if(a[j]<a[min]) min=j;////找出i之后的n-i个元素中的最小值,如果有比min还小,就交换 ,否则不交换 }if(min!=i){temp=a[i];a[i]=a[min];a[min]=temp;}printf("%d---->",i);for(k=0;k<n;k++){printf("%d ",a[k]);}printf("\n");}return 0;}


0 0
原创粉丝点击