选择排序

xiaoxiao2021-02-28  61

惯例,给大家介绍选择排序(以从小到大的位置为例说明)。

基本思想是,首先选出最小的数,放在第一个位置;然后选出第二小的数,放在第二个位置,......以此类推,进行排序。

还是以图来说明,更为专业的描述请大家自行搜索。

话不多说,奉上代码,如有错误请多指教

#include<stdio.h> #define P 10 void selectsort(int p[],int length); int main() { int a[P] = {1,23,2,5,67,3,50,17,48,19}; int i,length; length = sizeof(a)/sizeof(a[0]); for(i=0;i<length;i++) { printf("%d ",a[i]); } printf("\n"); selectsort(a,length); printf("*******select sort*******\n"); for(i=0;i<length;i++) { printf("%d ",a[i]); } printf("\n"); return 0; } //选择排序 void selectsort(int p[],int length){ int i,j,k; int temp; // 要注意一点,当要排序 N 个数,已经经过 N-1 次遍历后,已经是有序数列 for(i=0;i<length-1;i++) { k = i;// 用来保存最小值得索引 for(j=i+1;j<length;j++) { if(p[k]>p[j]) k = j; } //与初始的i下标交换大小 temp = p[i]; p[i] = p[k]; p[k] = temp; } }

转载请注明原文地址: https://www.6miu.com/read-51798.html

最新回复(0)