码迷,mamicode.com
首页 > 编程语言 > 详细

c语言选择排序

时间:2016-11-10 18:48:43      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:color   快速   数字   替换   排序   过程   简单   小数   1.5   

  简单选择排序是经常用到的一种排序算法.

  原理: 

 1.简单选择排序一句话概括:每次选择无序数列中最小的将其放在有序数列的最后。

 2.在简单选择排序中,我们用初始化的数字int a[6]={2,5,6,3,1,4}

3.算法基本执行步骤1:找到初始的无序数组中最下的数,将其放在数组的头部。交换最小数和数组头部元素即可(这是与冒泡有区别的地方)。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 /*
 5  * 简单选择排序一句话概括:每次选择无序数列中最小的将其放在有序数列的最后。
 6  * 二、在简单选择排序中,我们用初始化的数字int a[6]={2,5,6,3,1,4}
 7  * 三、算法基本执行步骤1:找到初始的无序数组中最下的数,将其放在数组的头部。交换最小数和数组头部元素即可(这是与冒泡有区别的地方)。
 8  */
 9 
10 //替换
11 void swap(int a[],int i,int j){
12     int temp = a[i];
13     a[i] = a[j];
14     a[j] = temp;
15 }
16 
17 //快速排序
18 void select_sort(int a[],int l)
19 {
20     // l = 6
21     int i,temp,j,k;
22     /*
23      * 推导过程 2,5,6,3,1,4
24      * i = 0 temp = 2 ,k =0 搜索到最小值1, k = 4 -> 1,5,6,3,2,4
25      * i = 1 temp = 5 ,k =1搜索到最小值2, k = 4   ->   1,2,6,3,5,4
26      * i = 2 temp = 6 ,k =2搜索到最小值3  k = 3 ->   1,2,3,6,5,4
27      * i = 3 temp = 6 ,k =3搜索到最小值4  k = 5 ->   1,2,3,4,5,6
28      * i = 4 temp = 5 ,k =4搜索不到   k = 4    k和i相同不做任何操作
29      */
30 
31     //最后一次不用循环
32     for (i=0;i<l-1;i++){
33         //获取头元素的值
34         temp = a[i];
35         k = i;
36 
37         //printf("%d\n",temp);
38         //从第i+1 元素开始查找,如果找到比首元素小就替换
39         for (j = i+1;j<l;j++){
40 
41             if (a[j] < temp){
42                 //先记录下来最小值
43                 temp = a[j];
44                 k = j; //最小值的下标
45             }
46         }
47 
48         //替换
49         if ( i != k )
50             swap(a,i,k);
51     }
52 
53 }
54 
55 void main()
56 {
57     int a[] = {2,5,6,3,1,4};
58     int i,l = sizeof(a) / sizeof(int);
59 
60     //选择排序
61     select_sort(a,l);
62 
63     printf("选择排序后:\n");
64     for ( i = 0; i < l; ++i) {
65         printf("%d\n",a[i]);
66     }
67 
68 }

 

 

c语言选择排序

标签:color   快速   数字   替换   排序   过程   简单   小数   1.5   

原文地址:http://www.cnblogs.com/loveyouyou616/p/6051782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!