zoukankan      html  css  js  c++  java
  • 简单选择排序算法----(排序算法五)

    1.算法原理 

    找到数组中最小的元素与已好数组的最后一位元素交换位置

    49  38  65  97  76  13  27  49

    i=0   最小为13,交换49与13得[13] 38 65 97 76 [49] 27 49

    i=1   最小为27,交换38与27得13 [27] 65 97 76 49 [38] 49 

    i=2   最小为38,交换65与38得13 27 [38] 97 76 49 [65] 49 

    i=3   最小为49,交换97与49得13 27 38 [49] 76 [97] 65 49 

    i=4   最小为49,交换76与79得13 27 38 49 [49] 97 65 [76]

    i=5   最小为65,交换97与65得13 27 38 49 49 [65] [97] 76

    i=6   最小为76,交换97与76得13 27 38 49 49 65 [76] [97]

    排序结束

    2.代码实现

    #include <stdio.h>
    
    
    //printArray打印出数组
    void printArray(int a[],int size){  
        printf("数组为:[%d] ",a[0]);  
        for (int i=1;i<size;i++)  
        {  
            printf(" %d ",a[i]);  
        }  
        printf("
    ");  
    }
    
    //最出a[]中从start到end元素中的最小值的下标
    int  minIndex(int a[],int start,int end){
    	int minIndex=start;
    	for(int i=start+1;i<=end;i++){
    		a[i]<a[minIndex]?minIndex=i:0;
    	}
    	return minIndex;
    }
    
    void main()
    {
    	//a[0]为监视哨
    	int a[9]={0,49,38,65,97,76,13,27,49}; 
    	int n=8;
    	for (int i=1;i<=n-1;i++)
    	{
    		int index=minIndex(a,i,n);
    		printf("最小a[%d]=%d ",index,a[index]);
    		printArray(a,9);
    		a[0]=a[index];
    		a[index]=a[i];
    		a[i]=a[0];
    	}
    	printArray(a,9);
    	
    }
    

    3.排序结果

    最小a[6]=13 数组为:[0]  49  38  65  97  76  13  27  49
    最小a[7]=27 数组为:[13]  13  38  65  97  76  49  27  49
    最小a[7]=38 数组为:[27]  13  27  65  97  76  49  38  49
    最小a[6]=49 数组为:[38]  13  27  38  97  76  49  65  49
    最小a[8]=49 数组为:[49]  13  27  38  49  76  97  65  49
    最小a[7]=65 数组为:[49]  13  27  38  49  49  97  65  76
    最小a[8]=76 数组为:[65]  13  27  38  49  49  65  97  76
    数组为:[76]  13  27  38  49  49  65  76  97
    
    
    

  • 相关阅读:
    macOS Big Sur 关闭 SIP 正确方法
    绕过CDN寻找真实IP的8种方法
    mycat 链接mysql提示ERROR 3009 (HY000): java.lang.IllegalArgumentExceptio解决方式
    【SpringBoot】SpringBoot 内嵌容器及性能
    【Java】基于NIO的聊天室
    【Java】基于BIO的聊天室
    【ZooKeeper】ZooKeeper源码编译
    【SpringBoot】 使用外部Tomcat方法及启动原理
    【Java】深入理解SPI机制
    【SpringBoot】SpringBoot 自动配置原理
  • 原文地址:https://www.cnblogs.com/whzhaochao/p/5023473.html
Copyright © 2011-2022 走看看