选择排序

2021-05-13  本文已影响0人  Zerek_W

每趟选择一个最大的元素(或最小的元素)与数组前面的元素交换
只需记录其下标就好


选择排序.gif
#include <stdio.h>

void selectionSort(int arr[],int len)
{
    int i,j,temp,index;
    for(i=0;i<len-1;i++)
    {
        index=i;
        for(j=i;j<len-1;j++)
        {

            if(arr[index]<arr[j+1]) //也可以大于来判断
                {
                    index=j+1;
                }
        }
        if(index!=i)
            {
            temp=arr[index];
            arr[index]=arr[i];
            arr[i]=temp;
            }

    }
}

void main()
{
    int arr[]={1,2,3,4,9,8,7,6,5,0};
    int len = (int)sizeof(arr)/sizeof(*arr);
    printf("The order after sorting is:\n");
    selectionSort(arr,len);
    for(int i=0;i<len;i++)
    {
        printf("%d  ",arr[i]);
    }

}
上一篇 下一篇

猜你喜欢

热点阅读