• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
feng_er
博客园    首页    新随笔    联系   管理    订阅  订阅

选择排序

遍历无需部分,每次找到无需部分的一个最小值,并将其置于左面。(升序排列)

代码如下;

 1 void sort(int *p, int n)
 2 {   
 3      int min,des,temp;
 4      for(int i = 0; i < n; i++)
 5          {
 6          min = p[i]; des = i;    
 7          for(int j = i+1; j < n; j++)
 8              if(p[i]>p[j])
 9                  {
10                      min = p[j];
11                      des = j;
12                  }
13          temp = p[i];
14          p[i] = min;
15          p[des] = temp;                 
16          }
17 }

同冒泡排序,选择排序为两重循环,时间复杂度为O(n^2);

posted @ 2017-07-09 08:39  feng_er  阅读(103)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3