选择排序

来源:互联网 发布:安卓能装windows系统 编辑:程序博客网 时间:2024/05/18 06:28

/*
1:先假设第一个元素是最小的(期初 min_index=0), 
遍历后面的如果存在比第一个更小的元素则改变min_index=更小的元素下标,
一次遍历完事则得到min_index是最小元素的索引, 接着交互元素即把最小的元素放到第一个;

2:再假设第二个元素是最小的(期初 min_index=1), 
遍历后面的如果存在比第一个更小的元素则改变min_index=更小的元素下标,
一次遍历完事则得到min_index是第二小元素的索引, 接着交互元素即把最小的元素放到第二个;

*/

#include <stdio.h>#include <malloc.h>#include <string.h>void choise(int *a, int n){int i,j,min_index,temp;for(i=0; i<n-1; i++) {min_index=i;for(j=i+1; j<n; j++){ if(a[j] < a[min_index]){min_index=j; } }if(i!=min_index) {temp=a[i];a[i]=a[min_index];a[min_index]=temp;}}}int main(){        int a[] = {1,5,2,3,9,0,8,7,6,4};        int i = 0;        choise(a, 10);        for(i=0;i<10;i++){                printf("===%d\n", a[i]);        }}



0 0
原创粉丝点击