美文网首页
简单排序算法

简单排序算法

作者: 古德蜡克 | 来源:发表于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;
        }
    }
    
    

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

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

    相关文章

      网友评论

          本文标题:简单排序算法

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