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

     1 /*简单选择排序每趟循环只能确定一个元素飘絮后的定位。我们可以考虑改进每趟循环确定两个元素(当前每趟最大和最小记录)的位置
     2 *从而减少排序所需要的循环次数。改进后对n个数据进行排序,最多只需要n/2趟循环即可
     3 */
     4 
     5 //二元选择排序
     6 void BiSelectorSort(int a[],int n)
     7 {
     8     int i,j,min_key,max_key,temp;
     9 
    10     for(i=0;i<=n/2;i++)
    11     {
    12      min_key=i;
    13      max_key=i;
    14      for(j=i+1;j<=n-1-i;j++)
    15      {
    16          if(a[j]>a[max_key])
    17          {
    18              max_key=j;continue;
    19          }
    20          if(a[j]<a[min_key])
    21          {
    22              min_key=j;
    23          }
    24      }
    25 
    26      //交换
    27      temp=a[i];a[i]=a[min_key];a[min_key]=temp;
    28      temp=a[n-1-i];a[n-1-i]=a[max_key];a[max_key]=temp;
    29     }
    30 }
    31 //简单选择排序
    32 void  selectSort(int a[],int n)
    33 {
    34     for(int i=0;i<n;i++)
    35     {
    36        int min_key=i;
    37 
    38        for(int j=i+1;j<n;j++)
    39          if(a[j]<a[min_key]) min_key=j;
    40 
    41        //交换
    42        int temp=a[i];
    43        a[i]=a[min_key];
    44        a[min_key]=temp;
    45 
    46     }
    47 
    48 }
    49 //插入排序
    50 void insertSort(int a[],int n)
    51 {
    52     for(int i=1;i<n;i++)
    53     {
    54       if(a[i]<a[i-1])
    55       {
    56         int temp=a[i];
    57         int j=i-1;
    58         while(temp<a[j])
    59         {
    60 
    61                a[j+1]=a[j];
    62                j--;
    63         }
    64         a[j+1]=temp;
    65       }
    66     }
    67 }
  • 相关阅读:
    Hibernate 总结
    Mybatis 总结
    Mybatis原生DataSource源码解析
    Spring Cloud 服务安全
    Mybatis原生源码解析
    最好的Http客户端--Feign 源码分析
    Zuul整合Hystrix断路器
    Zuul核心-预定义Filter
    Feign性能优化
    Feign整合Ribbon负载均衡
  • 原文地址:https://www.cnblogs.com/xiaoying1245970347/p/5145493.html
Copyright © 2011-2022 走看看