排序之选择算法(写给自己看的)

要点:

简单选择排序是一种选择排序

选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。

简单排序处理流程:

(1)从待排序序列中,找到关键字最小的元素;

(2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;

(3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。

核心代码(C语言):

#include <stdio.h>
#include <stdlib.h>
void sort(int list[],int n);
int main(int argc, char *argv[]) {
    int a[10]={9,8,7,6,5,4,3,2,1,10};
    sort(a,10);
    return 0;
}
void sort(int list[],int n){
    int i,j,k;
    for(i=0;i<n;i++){
        int min=i;//保存最小值的索引
         for(j=i+1;j<n;j++){
             if(list[min]>list[j]){
                 min=j;
             }
         }
         //将找到的第i个小的值放在第i个位置上 
         int temp=0;
         temp=list[min];
         list[min]=list[i];
         list[i]=temp;
         printf("第%d趟元素:",i+1);
         for(k=0;k<n;k++){
             printf("%d  ",list[k]);
         } 
         printf("\n");
    }
    
}

 

posted @ 2018-03-20 20:00  为什么不这样  阅读(152)  评论(0)    收藏  举报