zoukankan      html  css  js  c++  java
  • 排序二:选择排序

    基本思想:

      每一趟(例如第i趟,i=0,1,2,...,n-2)在后面 n-i 个待排序的数据元素中选出关键字最小的元素,作为有序元素序列的第 i 个元素。

    #include <stdio.h>
    
    void println(int array[], int len)
    {
        int i = 0;
    
        for (i = 0; i < len; i++) {
            printf("array[%d] = %d
    ", i, array[i]);
        }
        printf("
    ");
    }
    
    void swap(int array[], int i, int j)
    {
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    
    void SelectionSort(int array[], int len)   // O(n*n)
    {
        int i = 0;
        int j = 0;
        int k = -1;
    
        for (i = 0; i < len; i++) {
            k = i;
            for (j = i; j < len; j++) {
                    if (array[k] > array[j) {
                            k = j;
                    }
            }
            swap(array, i, k);
        }
    }
    
    int int main(int argc, char const *argv[])
    {
        int array[] = {21, 25, 49, 25, 16, 8};
        int len = sizeof(array) / sizeof(*array);
    
        SelectionSort(array, len);
    
        println(array, len);
    
        return 0;
    }
  • 相关阅读:
    求助
    debian虚拟机试用
    算是业界新闻吧
    推荐一个图书分享网站
    日志
    写汇编报告小记
    水仙花数
    进程创建
    win32程序运行原理1
    [解题报告]374 Big Mod
  • 原文地址:https://www.cnblogs.com/ronnydm/p/5814357.html
Copyright © 2011-2022 走看看