美文网首页
简单排序算法

简单排序算法

作者: 古德蜡克 | 来源:发表于2019-04-15 22:11 被阅读0次

刚学c++,利用两种间的排序算法来练练手0.0
1.冒泡法排序

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
int main(){
    int n_array[] = {7,2,1,4,6};
    int i,j;
    int temp = 0;
    int len = sizeof(n_array)/sizeof(n_array[0]);
    cout<<"数组长度为"<<len<<endl;
    for(i=0;i<len;i++){
        for (j=0;j<len-i-1;j++){
            if(n_array[j]>n_array[j+1]){
                temp = n_array[j];
                n_array[j] = n_array[j+1];
                n_array[j+1] = temp;
        }
      }
    }
    cout<<"数组顺序排列为"<<endl;
    for(i=0;i<len;++i){
        cout<<n_array[i]<<endl;
    }
}

2.快速排序

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
int main(){
    int n_array[] = {7,2,1,4,6};
    int i,j,min_index;
    int temp = 0;
    int len = sizeof(n_array)/sizeof(n_array[0]);
    cout<<"数组长度为"<<len<<endl;
    for(i=0;i<len;i++){
        min_index = i;
        for (j=i+1;j<len;j++){
            if(n_array[min_index]>n_array[j]){
                min_index = j;
           }
        }
        if (min_index!=i){
            temp = n_array[i];
            n_array[i] = n_array[min_index];
            n_array[min_index] = temp;
        }
    }
    cout<<"数组顺序排列为"<<endl;
    for(i=0;i<len;++i){
        cout<<n_array[i]<<endl;
    }
}

总结以下两种算法的思路不同点:

冒泡法:每次比较的时候某一个位置的数只比较一次,且都在相邻两个数之间进行比较,找到最大值(或最小值),通过冒泡的方式实现。
选择排序:第一个循环里假设第一个位置的数为最小值,依次与其他的位置的数进行比较,如果有小于当前的位置的数,则两个数交换位置,从而确定第一个最小值,紧接着假定当前的第二个数为出去第一个最小值的情况下的最小值,第二个循环将第二个数分别与后续的参数分别进行比较,如果有小于第二个位置数的则进行数据交换,从而确定第二小的值。

相关文章

  • 算法与数据结构(二):排序篇-O(n^2)算法:选择 &

    排序基础 O(n^2)的算法虽然简单,但也实用!让我们从最简单的基础排序算法开始,打开我们的算法大门! 排序算法 ...

  • 简单排序(选择排序、起泡排序和插入排序)使用详解

    简单排序算法 简单排序算法是一类算法,指那些直观、易理解的排序算法的总和。 到现在为止,我们已经讲了的三种排序算法...

  • 浅谈排序算法

    排序算法有很多种,今天先谈谈一些简单的排序算法。包括桶排序、冒泡排序和快速排序算法。后期总结各种排序算法。 桶排序...

  • 排序算法(四)选择排序

    排序算法(四)选择排序 1.算法思路  选择排序(Selection-Sort)是一种简单直观的排序算法。它的工作...

  • 2018-04-03 排序算法

    8种排序算法:按照时间复杂度分为两类 简单排序算法:冒泡排序,选择排序,直接插入排序 改进算法:希尔排序,堆排序,...

  • 插入排序算法实现

    排序算法是最常见,最基础的算法,作者文集中记录了两种排序算法(插入排序,归并排序) 插入排序算法实现很简单直接,附...

  • 选择排序算法

    一、选择排序算法 选择排序(Selection sort)是一种简单直观的排序算法。 二、算法思想 每一次从待排序...

  • 经典算法---排序(摘抄)

    一、排序算法 前言:常见排序算法分类 非线性时间比较类排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入...

  • 冒泡排序算法

    冒泡排序(Bubble Sort)算法是所有排序算法中最简单、最基本的一种。冒泡排序算法的思路就是交换排序,通过相...

  • 排序基础(一)

    排序算法 O(n2)的排序算法 为什么要学习O(n2)的排序算法? 基础 编码简单,易于实现,是一些简单场景的首选...

网友评论

      本文标题:简单排序算法

      本文链接:https://www.haomeiwen.com/subject/oeopwqtx.html