黑马程序员技术交流社区

标题: 冒泡排序和选择排序,还有哪里能改进么? [打印本页]

作者: 张健康ios0826    时间: 2015-9-4 20:30
标题: 冒泡排序和选择排序,还有哪里能改进么?
#include <stdio.h>
void xuanZe(int arr[],int len){

    for (int i=0; i<len-1; i++) {
   
        for (int j = i + 1; j < len; j++) {
        
            if (arr[i]<arr[j]) {
            
                int temp;
               
                temp = arr[i];
               
                arr[i] = arr[j];
               
                arr[j] = temp;
            }
        }
    }
}

void maoPao(int arr[],int len){
    for (int i=0; i<len-1; i++) {
        for (int j = 0; j < len-i-1; j++) {
            if (arr[j]>arr[j+1]) {
                int temp;
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}






int main(){
   
    int arr[5];
   
    int len = sizeof(arr)/sizeof(int);
   
    for (int i = 1; i<len+1; i++) {
   
        if(scanf("\n"){
            break;
        }else{
            
        printf("请输入想要排序的第%d个数\n",i);
        
        }
        scanf("%d",&arr[i-1]);
    }
   
    int num;
   
    for (int i = 0; ; i++) {
     
        printf("请输入想要的排序方法 1.选择排序(由大到小) 2.冒泡排序(由小到大)\n");
        
        scanf("%d",&num);
        
        if (num==1) {
         
            xuanZe(arr,len);
            
            break;
        
        }else if(num==2){
            
            maoPao(arr,len);
            
            break;
        
        }else{
            
            printf("您的输入有误,请重新输入\n");
        
        }
    }
   
    printf("结果是:\n");
   
    for (int i=0; i<len; i++) {
   
        if(i==4){
        
            printf("%d\t",arr[i]);
            
            printf("\n");
      
        }else{
        
            printf("%d\t",arr[i]);
        }
    }
    return 0;
}
作者: 郭占岭    时间: 2015-9-4 20:32
互相看看,交流交流
作者: 没有如果    时间: 2015-9-4 21:08

互相看看,交流交流




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2