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]);
        }
    
    }
  • 相关阅读:
    (转)【web前端培训之前后端的配合(中)】继续昨日的故事
    ural(Timus) 1136. Parliament
    scau Josephus Problem
    ACMICPC Live Archive 6204 Poker End Games
    uva 10391 Compound Words
    ACMICPC Live Archive 3222 Joke with Turtles
    uva 10132 File Fragmentation
    uva 270 Lining Up
    【转】各种字符串哈希函数比较
    uva 10905 Children's Game
  • 原文地址:https://www.cnblogs.com/hushunfeng/p/3891054.html
Copyright © 2011-2022 走看看