c语言简单选择排序

  1.  原理:从第一个数开始选择n次,每次选出最小值。n为数据长度。
  2.   1 //排序主函數
  3.   2 #include <stdio.h>
  4.   3 int main()
  5.   4 {
  6.   5 int ss[14]={5,10,13,3,1,11,4,12,7,2,0,8,9,6};
  7.   6 int i,k;
  8.   7 int length=14;
  9.   8 int step=5;
  10.   9 printf("初始值:");
  11.  10 for(i=0;i<length;i++)
  12.  11 printf("%d ",ss[i]);
  13.  12 printf("\n");
  14.  13 SelectSort(ss,length);
  15.  14 printf("最後結果:");
  16.  15 for(i=0;i<length;i++)
  17.  16 printf("%d ",ss[i]);
  18.  17 printf("\n");
  19.  18 }

  20.  1 #include <stdio.h>
  21.   2 void SelectSort(int Str[],int length )
  22.   3 {
  23.   4 int i,temp,j;
  24.   5 for(i=0;i<length;i++)
  25.   6 {
  26.   7 j = SelectMin(Str,length,i);
  27.   8 if(i!=j)
  28.   9 {
  29.  10 temp=Str[i];
  30.  11 Str[i]=Str[j];
  31.  12 Str[j]=temp;
  32.  13 }
  33.  14 printf("第%d次選擇",i);
  34.  15 for(j=0;j<length;j++)
  35.  16 printf("%d ",Str[j]);
  36.  17 printf("\n");
  37.  18 }
  38.  19 }
  39. //找最小值函数
  40.  1 int   SelectMin(int Str[] , int length,int i )
  41.   2 {
  42.   3 int  Min=i;
  43.   4 i=i+1;
  44.   5 while(i<length)
  45.   6 {
  46.   7 if(Str[Min]>Str[i])
  47.   8 Min=i;
  48.   9 i++;
  49.  10 }
  50.  11 return Min;
  51.  12 }
  52. 运行结果:
  53. 初始值:5 10 13 3 1 11 4 12 7 2 0 8 9 6 
  54. 第0  次選擇0 10 13 3 1 11 4 12 7 2 5 8 9 6 
  55. 第1  次選擇0 1 13 3 10 11 4 12 7 2 5 8 9 6 
  56. 第2  次選擇0 1 2 3 10 11 4 12 7 13 5 8 9 6 
  57. 第3  次選擇0 1 2 3 10 11 4 12 7 13 5 8 9 6 
  58. 第4  次選擇0 1 2 3 4 11 10 12 7 13 5 8 9 6 
  59. 第5  次選擇0 1 2 3 4 5 10 12 7 13 11 8 9 6 
  60. 第6  次選擇0 1 2 3 4 5 6 12 7 13 11 8 9 10 
  61. 第7  次選擇0 1 2 3 4 5 6 7 12 13 11 8 9 10 
  62. 第8  次選擇0 1 2 3 4 5 6 7 8 13 11 12 9 10 
  63. 第9  次選擇0 1 2 3 4 5 6 7 8 9 11 12 13 10 
  64. 第10次選擇0 1 2 3 4 5 6 7 8 9 10 12 13 11 
  65. 第11次選擇0 1 2 3 4 5 6 7 8 9 10 11 13 12 
  66. 第12次選擇0 1 2 3 4 5 6 7 8 9 10 11 12 13 
  67. 第13次選擇0 1 2 3 4 5 6 7 8 9 10 11 12 13 
  68. 最後結果:0 1 2 3 4 5 6 7 8 9 10 11 12 13 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值