简单分析选择排序,冒泡排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单分析选择排序,冒泡排序相关的知识,希望对你有一定的参考价值。

1,选择排序的原理
 1.1 选择排序就是会依次利用每一位索引上的值,与它后面的所有值进行比较,而且在每经过一轮比较,最值就会出现在最前面



  2,冒泡排序的原理
 2.1 冒泡排序的原理就是两个相邻的元素进行比较,每比较一轮,最值就会出现在最后面

 

 

#include <stdio.h>
void getLow(int count[],int length);
void countNumber(int count1[],int length);
void getLarge(int count[],int length);
void getName(int count[],int v1,int v2);
int main(int argc, const char * argv[]) {
    //已知一个无序的数组,里面有5个数组 要求对数组进行排序
    int number[5] = {12 ,3, 45 ,54, 456};
    int length = sizeof(number) / sizeof(number[0]) ;
    countNumber(number, length);
    printf("\n");
    getLow(number,length);
    countNumber(number, length);
    getLarge(number,length);//选择排序函数调用
    printf("\n");
    countNumber(number, length);
    printf("\n");
}
//函数遍历的代码
void countNumber(int count1[],int length){
    for (int i = 0; i < length; i ++) {
        printf("number[%i] = %i\t",i,count1[i]);
    }
   
}
void getLow(int count[],int length){
    for (int i = 0; i < length; i ++) {
        for (int j = i ; j <= length -1 ; j++){
            if (count[i] > count[j]) {
                getName(count, i, j);
            }
        }
    }
}

//选择排序的代码
//冒泡排序的代码
void getLarge(int count[],int length){
    for (int i = 0; i< length ; i++) {
        for (int j =0 ; j < length - i -1 ; j ++) {
            if (count[j] < count[j+1]) {
            getName(count, j, j+1);
            }
        }
    }
}
//两个变量交换的代码
void getName(int count[],int v1,int v2){
           
    int tmp = count[v1];
    count[v1]=count[v2];
    count[v2]=tmp ;
    
}

以上是关于简单分析选择排序,冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

Java数据结构和算法总结-冒泡排序选择排序插入排序算法分析

Java排序算法分析与实现:快排冒泡排序选择排序插入排序归并排序

最熟悉的几种排序——冒泡排序插入排序和选择排序

算法漫游指北(第七篇):冒泡排序冒泡排序算法描述动图演示代码实现过程分析时间复杂度和选择排序算法描述动图演示代码实现过程分析时间复杂度

算法漫游指北(第七篇):冒泡排序冒泡排序算法描述动图演示代码实现过程分析时间复杂度和选择排序算法描述动图演示代码实现过程分析时间复杂度

算法排序冒泡排序