001 C/C++ 选择排序法
2020-12-13 03:09
标签:code int amp nbsp 下标 baidu sort 交换 选择排序 简单选择排序: 选择排序法 是对 定位比较交换法(也就是冒泡排序法) 的一种改进。 选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。 简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。 C Sample code: 001 C/C++ 选择排序法 标签:code int amp nbsp 下标 baidu sort 交换 选择排序 原文地址:https://www.cnblogs.com/it89/p/11068215.html
第1趟:12与49交换:12{27 65 97 76 49 38}
第2趟:27不动 :12 27{65 97 76 49 38}
第3趟:65与38交换:12 27 38{97 76 49 65}
第4趟:97与49交换:12 27 38 49{76 97 65}
第5趟:76与65交换:12 27 38 49 65{97 76}
第6趟:97与76交换:12 27 38 49 65 76 97 完成 1 void SelectSort( int a[], int length )
2 {
3 //对数组a排序,length是数组元素数量
4 for( int i = 0; i ) {
5 // 找到从i开始到最后一个元素中最小的元素,k存储最小元素的下标.
6 int k = i;
7 for( int j = i + 1; j ) {
8 if( a[j] j; }
9 }
10
11 // 将最小的元素a[k] 和 开始的元素a[i] 交换数据.
12 if( k != i ) {
13 int temp;
14 temp= a[k];
15 a[k] = a[i];
16 a[i] = temp;
17 }
18 }
19 }