鱼C论坛

 找回密码
 立即注册
查看: 6176|回复: 13

[扩展阅读] 各种各这样的排序算法:选择排序(*)

[复制链接]
发表于 2016-12-7 22:15:54 | 显示全部楼层 |阅读模式
购买主题 已有 12 人购买  本主题需向作者支付 10 鱼币 才能浏览
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-10 00:07:36 | 显示全部楼层
这个图的速度有点快,可以放慢速度吗?
221638nwb1uu8muamwikku.gif
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-12-13 16:32:51 | 显示全部楼层
人造人 发表于 2016-12-10 00:07
这个图的速度有点快,可以放慢速度吗?

其实就是找到整个序列中最小的数然后放到当前位置~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-13 16:44:40 | 显示全部楼层
小甲鱼 发表于 2016-12-13 16:32
其实就是找到整个序列中最小的数然后放到当前位置~~

那就是不可以了^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-24 17:17:18 | 显示全部楼层
人造人 发表于 2016-12-10 00:07
这个图的速度有点快,可以放慢速度吗?

我调慢了0.5s
直接选择排序.gif
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-24 17:25:11 | 显示全部楼层

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-12 16:16:10 | 显示全部楼层
为什么不在if语句里交换,像这样
  1. void selection_sort(int array[], int length)
  2. {
  3.     int i, j, temp;

  4.     for(i = 0; i < length - 1; i++)
  5.     {
  6.         for(j = i + 1; j < length; j++)
  7.         {
  8.             if(array[i] > array[j])
  9.             {
  10.                 temp = array[i];
  11.                 array[i] = array[j];
  12.                 array[j] = temp;
  13.             }
  14.         }
  15.     }
  16. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-12 22:46:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-27 21:39:54 | 显示全部楼层
  1. #include<stdio.h>

  2. void insert(int a[],int len)
  3. {
  4.         int i,j,min,tem;
  5.         for(i = 0;i < len - 1;i++)
  6.         {
  7.                 min = i;
  8.                 for(j = i+1;j < len; j ++)
  9.                 {
  10.                         if(a[min] > a[j])
  11.                         min = j;
  12.                 }
  13.                 tem = a[min];
  14.                 a[min] = a[i];
  15.                 a[i] = tem;
  16.         }
  17. }

  18. int main(void)
  19. {
  20.         int i = 0,len;

  21.         int a[] = {23,3,4,4,3,65,45,76,45,34,76,23,34,45,65,3,4432,23,43,23,2};

  22.         len = sizeof(a)/sizeof(a[0]);
  23.        
  24.         insert(a,len);
  25.        
  26.         for(i = 0;i < len;i++)
  27.         {
  28.                 printf("%d ",a[i]);
  29.                
  30.         }
  31.         return 0;
  32. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 16:29:23 | 显示全部楼层
  1. #include <stdio.h>

  2. void insert(int a[],int len)
  3. {
  4.         int i,j,k,tem;
  5.         for(i = 0;i < len;i ++)
  6.         {
  7.                 tem = a[i];
  8.                 for(j = i + 1 ;j < len; j++ )
  9.                 {
  10.                         if(a[i] > a[j])
  11.                         {
  12.                                 a[i] = a[j];
  13.                                 k = j;
  14.                         }
  15.                 }
  16.                 a[k] = tem;
  17.         }
  18. }
  19. int main()
  20. {
  21.         int a[] = {3,4,2,54,2,6,3,47,4,23,5,23,87,5,76,34,23,4,6745,23,54,98};
  22.         int len,i;
  23.         len = sizeof(a) / sizeof(a[0]);
  24.         insert(a,len);
  25.         for(i = 0;i < len;i++)
  26.         {
  27.                 printf("%d ",a[i]);
  28.         }
  29.         putchar('\n');

  30.         return 0;
  31. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-12 17:31:11 | 显示全部楼层
我这样写怎么打印出来的不对,有没有童鞋给看看?
  1. void select(int arr[],int len)
  2. {
  3.     int i,j,tt;
  4.     int tem,min;
  5.     for(i=0;i<len-1;i++)
  6.     {
  7.       min=arr[i];
  8.       for(j=i+1;j<len;j++)
  9.       {
  10.           if(min>arr[j])
  11.           {
  12.              min=arr[j];
  13.              tt=j;
  14.           }
  15.       }
  16.       tem=min;
  17.       arr[tt]=arr[i];
  18.       arr[i]=tem;
  19.     }
  20. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-3 18:16:14 | 显示全部楼层
好好学习才能天天向上!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-4 18:16:35 | 显示全部楼层
2316829671 发表于 2019-4-12 16:16
为什么不在if语句里交换,像这样

他的原理是找到最小的那个,在进行交换,而不是找到一个小的就交换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-19 23:27:29 From FishC Mobile | 显示全部楼层
2316829671 发表于 2019-4-12 16:16
为什么不在if语句里交换,像这样

需要找到后面还未排序的所有数据中最大的或最小的后再进行交换放在最前面,而不是每一次比较就交换一次(需要找到最大或最小的数才做交换)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 01:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表