zoukankan      html  css  js  c++  java
  • C 递归的选择排序

    选择排序算法扫描一个数组并寻找数组中最小的元素,当找到最小的元素师,将它和数组中的第一个元素进行交换。接下来,从数组的第二个元素开始,这一过程在子数组上重复。每一轮的结果是有一个元素被放在了适当的位置上。这一排序需要的处理能力类似于冒泡排序。

    void selectSort(int arr[],int low,int high)
    {//low 是数组的开始下标 high是结束下标
        int i;
        int min = low;
        
        if(low < high){
            for(i = low + 1;i <= high;i++){
                if(arr[i] < arr[min]){
                    min = i;
                }
            }
            if(min != low){//如果最小值是第一个就不互换
                swap(arr,low,min);
            }
            
            printArr(arr,high);
    
            selectSort(arr,low+1,high);
        }
    }
    
    void printArr(int arr[],int length)
    {
        int i;
        for(i = 0; i <= length; i++){
            printf("%d ",arr[i]);
        }
        printf("
    ");
    }
    
    void swap(int arr[], int first, int min)
    {
        int temp;
        temp = arr[first];
        arr[first] = arr[min];
        arr[min] = temp;
    }
  • 相关阅读:
    176. Second Highest Salary
    175. Combine Two Tables
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
    169. Majority Element
    168. Excel Sheet Column Title
    167. Two Sum II
    160. Intersection of Two Linked Lists
    个人博客记录
    <meta>标签
  • 原文地址:https://www.cnblogs.com/ShowJoy/p/3601735.html
Copyright © 2011-2022 走看看