#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM 10
void Printf(int *p,int len);
int main(int argc,const char *argv[]){
int *p;
if((p=(int *)malloc(NUM*sizeof(int)))==NULL){
printf("失败!");
exit -1;
}
int i;
for(i=0;i<NUM;i++){
scanf("%d",p+i);
}
*(p+i)='\0';
Printf(p,NUM);
printf("\n");
///
int temp,min,j;
for(i=0;i<NUM-1;i++){//进行NUM-1伦选择
min=i;
for(j=i+1;j<NUM;j++){
if(*(p+j)<*(p+min)){
min=j; //min中保存了这一轮扫描过程中最小元素的下标
}
}
if(min!=i){//如果最小元素的下标和无序区首位的下标不相等
temp=*(p+i);
*(p+i)=*(p+min);
*(p+min)=temp;
}
printf("第%d:",i+1);
Printf(p,NUM);
printf("\n");
}
return 0;
}
void Printf(int *p,int len){
int i;
for(i=0;i<len;i++){
printf("%d ",*(p+i));
}
}
5分钟学会:选择排序
最新推荐文章于 2024-08-29 11:45:08 发布