zoukankan      html  css  js  c++  java
  • 选择排序

    /**
    **  @author:hushunfeng
    **    选择排序,从大到小排列
    */
    #include<stdio.h>
    
    //在所给数组的一段区间内计算出最大值
    //并得到其最大元素的下标
    int getMaxIndex(int array[],int k,int len) {
        //每一轮最大值所在的下标
        int index = 0;
        int tempMax;
        int i;
        for(i=k;i<len;i++) { 
            if(array[i]>tempMax) {
                tempMax = array[i];
                index = i;
            }
        }
        //return 
        return index;
    }
    
    //每轮得到的最大元素和所在区间最前面的元素进行互换
    void swapElement(int array[],int index,int k) {
        int temp;
        temp = array[k];
        array[k] = array[index];
        array[index] = temp;
    }
    
    //程序入口
    void main() {
        
        //定义输入的整型数组长度为10
        #define LEN 10
    
        int array[LEN];
        int index;
        int k;
        int i;
        int count;
    
        printf("请输入%d个整型数据:",LEN);
        for(count=0;count<LEN;count++) {
            scanf("%d",&array[count]);
        }
        for(k=0;k<(LEN-1);k++) {
            index = getMaxIndex(array,k,LEN);
            swapElement(array,index,k);
        }
    
        printf("输入的数据从大小排序为:");
        for(i=0;i<LEN;i++) {
            printf("%d  ",array[i]);
        }
    }
     
    /**
    **  @author:hushunfeng
    **    
    */
    #include<stdio.h>
    
    void swap(int *a,int *b) {
        int temp;
        temp = *a;
        *a = *b;
        *b = temp;
    }
    
    //选择排序,从小到大进行排列
    void chooseSort(int *array,int arraySize) {
        int min ;
        int i;
        int j;
        //每一轮最小值的下标
        int minIndex = 0;
    
        for(i=0;i<arraySize-1;i++) {
            min = array[i];
            minIndex = i;
            for(j=i+1;j<arraySize;j++) {
                if(array[j]<min) {
                    min = array[j];
                    minIndex = j;
                }
            }
            swap(&array[i],&array[minIndex]);
        }
    }
     
    
    void main() {
        int array[8] = {8,4,3,6,5,2,1,7};
        int i;
        chooseSort(array,8);
    
        for(i = 0; i < 8 ; i++) {
            printf("%d
    ",array[i]);
        }
    
    }
  • 相关阅读:
    有趣的F-String
    停止使用非版本控制的可执行代码
    Django ORM中,如何使用Count来关联对象的子集数量
    Django Tastypie: 贴士,技巧和故障排除
    我实在不懂Python的Asyncio
    使用Let's Encrypt为网站加入SSL证书
    [debug]记一次竞态更新bug的解决
    我的web聊天之---序章
    我的音乐盒子(nodejs7 + koa2 + vue + vuex + vue-router)
    装饰器 生成器 进阶
  • 原文地址:https://www.cnblogs.com/hushunfeng/p/3891054.html
Copyright © 2011-2022 走看看