选择排序改进了冒泡排序,每次遍历列表只做一次交换,为了做到这一点,一个选择排序在遍历时寻找最大的值,并在完成遍历后,将其放到正确的地方。第二次遍历,找出下一个最大的值。遍历n-1次排序n个项,最终项必须在n-1次遍历之后
例子如下:
代码如下:
#include<stdio.h> void selectSort( int data[] ,int n ) { /*----begin------*/ int i,j; int min = 0; for(i=0;i<n-1;i++) { min = i; for(j=i+1;j<n;j++) { if(data[min]>data[j]) { min = j; } } int temp = data[min]; data[min] = data[i]; data[i] = temp; } for(i=0;i<n;i++) { printf("%d ",data[i]); } /*-----end------*/ } int main() { int data[]={26,54,93,17,71,31,44,55,20}; selectSort(data,9); return 0; }