zoukankan      html  css  js  c++  java
  • 简单选择排序

    选择排序时间复杂度也为O(n^2)

    算法思想:

    选择排序即每次length-i的长度内选择一个最小的元素,与第一个进行替换,这样大循环length次后,就可以得到排好序的数组了。

    主要代码:

    void selectSort(int *arr,int length){
        int i,j,k,min;
        for(i=0;i<length;i++){
            min = i;
            for(j=i+1;j<length;j++){
                if(arr[j] <arr[min])
                    min = j;
            }
            if(min != i){
                k = arr[i];
                arr[i] = arr[min];
                arr[min] = k;
            }
        }
    }

    全部代码:

    #include <stdio.h>
    #include <stdlib.h>
    int arrtest[10] = {3,4,7,8,0,9,1,2,6,5};
    //int arrtest[10] = {0,1,2,3,4,5,6,7,8,9};
    //int arrtest[10] = {9,8,7,6,5,4,3,2,1,0};
    void copy(int *arr,int length);
    void print(int *arr,int length);
    void selectSort(int *arr,int length);
    int main(){
        int Arr[10];
        copy(Arr,10);
        print(Arr,10);
        selectSort(Arr,10);
        print(Arr,10);
        getchar();
        return 0;
    }
    void selectSort(int *arr,int length){
        int i,j,k,min;
        for(i=0;i<length;i++){
            min = i;
            for(j=i+1;j<length;j++){
                if(arr[j] <arr[min])
                    min = j;
            }
            if(min != i){
                k = arr[i];
                arr[i] = arr[min];
                arr[min] = k;
            }
        }
    }
    void copy(int *arr,int length){
        int i;
        for(i=0;i<length;i++){
            arr[i] = arrtest[i];
        }
    }
    
    void print(int *arr,int length){
        int i;
        for(i=0;i<length;i++){
            printf("%d ",arr[i]);
        }
        printf("
    ");
    }
    View Code

    运行示例:

  • 相关阅读:
    input输入框的各种样式
    Spring JdbcTemplate方法详解
    TF/IDF计算方法
    分布式日志收集系统--Chukwa
    分布式日志系统
    Iframe知识点
    拖拽事件
    面向对象知识点
    JS使用合并数组
    块元素block,内联元素inline; inline-block;
  • 原文地址:https://www.cnblogs.com/xing901022/p/3654548.html
Copyright © 2011-2022 走看看