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;
    }
  • 相关阅读:
    flume复习(二)
    初级3
    桶排序、计数排序、基数排序的介绍
    Hive编程指南读书笔记(1):
    重写、重载、封装、继承和多态
    Int与Integer的区别
    collect_list/collect_set(列转行)
    Group BY
    H指数
    数据倾斜2
  • 原文地址:https://www.cnblogs.com/ShowJoy/p/3601735.html
Copyright © 2011-2022 走看看