简单选择排序

简介:

选择排序时间复杂度也为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("\n");
}
复制代码

运行示例:

本文转自博客园xingoo的博客,原文链接:简单选择排序,如需转载请自行联系原博主。
相关文章
|
4月前
|
算法 数据处理 Python
插入排序、选择排序和二分查找
插入排序、选择排序和二分查找
|
12月前
|
算法 搜索推荐
归并排序与非比较排序详解
归并排序与非比较排序详解
64 0
|
存储 搜索推荐 算法
八大排序算法-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序、基数排序(下)
八大排序算法-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序、基数排序(下)
|
算法 搜索推荐
选择排序之简单选择排序
选择排序之简单选择排序
79 0
|
算法 搜索推荐
简单选择排序,直接插入排序、冒泡排序
简单选择排序,直接插入排序、冒泡排序
|
搜索推荐
冒泡排序,选择排序,直接插入排序
🐰冒泡排序 🐰选择排序 🐰直接插入排序
|
算法 搜索推荐 JavaScript
每天一点算法-简单选择排序-(Day7)
每天一点算法-简单选择排序-(Day7)
58 0
|
存储 算法 搜索推荐
【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析
本文简单介绍了冒泡排序、简单选择排序、直接插入排序,并对这三种排序进行比较,入参都是80000个随机数,比较算法耗时。进一步,我们通过代码分析三种排序算法的性能。
【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析
|
算法
插入排序和二分法(下)
插入排序和二分法(下)
165 0
插入排序和二分法(下)