zoukankan      html  css  js  c++  java
  • 常见的排序算法

    选择排序 

      -- 把待排序的n个元素看作 有序部分和无序部分 ,依次选出第 i 小的元素

    #include <iostream>
    #include<cstdio>
    
    using namespace std;
    
    int main(){
        int a[5] = {4,5,1,3,2} ;
        int i,j ;
        for(i=0; i<5; ++i){
            for(j=i+1;j<5;++j){
                if(a[i]>a[j]){    // 如果找到更小的,交换之
                    int t = a[i] ;  
                    a[i] = a[j] ;
                    a[j] = t ;
                }
            }
        }
    
        for(i=0; i < 5; ++i)
            printf("%d",a[i]);
        return 0 ;
    }

    冒泡排序

      -- 通过相邻元素之间的比较和交换使较小元素逐渐从后向前移动,就像水底的气泡一样逐渐向上冒。

    #include<iostream>
    #include<cstdio>
    using namespace std ;
    
    int main(){
        int a[6] = {1,4,2,3,6,5} ;
        int temp , n = 6 ;
        for(int i=0;i<n-1;i++){ // n个数, n-1轮冒泡 , 每一轮都将当前最小的数推到最前
            for(int j= n-1 ; j>i ; j--){
                if(a[j]<a[j-i]){ //交换两个数
                    temp = a[j];
                    a[j] = a[j-1];
                    a[j-i] = temp ;
                }
            }
    
        }
        //  打印排序结果
        for(int i = 0 ; i<n ; i++){
            printf("%d ",a[i]);
        }
        return 0 ;
    }

    插入排序 --
      把待排序的n个元素看作一个 有序部分和一个 无序排序部分 。 开始时有序部分只有1个元素,无序部分有n-1 个元素。排序过程中每次取出无序部分的第一个元素,将它插入到有序部分的合适位置,使有序部分元素个数增1,经过 n-1 次这样的处理后,有序部分有n个元素,排序结束。

    #include<iostream>
    #include<cstdio>
    using namespace std ;
    
    int main(){
        int a[] = {2,10,4,5,1,9} ; // 待排序元素用一个数组a表示,数组有n个元素
        int temp , n = 6 , j ;
        for(int i = 1 ; i<n ;i++){ // i 表示插入次数,并进行 n-1 次插入
            // 把待排序元素赋给 temp , temp 在 while 循环中并不改变 , 这样方便比较 ,并且它是要插入的元素
            temp = a[i] ;
            j = i -1 ;
            // while 循环的作用是将比当前元素大的元素往后移动一个位置
            while((j>=0)&&(temp<a[j])){
                a[j+1] = a[j];
                j--;  // 顺序比较和移动,依次将元素后移动一个位置
            }
            a[j+1] = temp ; // 元素后移后要插入的位置就空出了,找到该位置插入
        }
    
        for(int i = 0 ;i<=5;i++){
            printf("%d ", a[i]);
        }
    
        return 0 ;
    
    }



  • 相关阅读:
    Python——pygame入门实例
    Python——基础函数2
    Python——面向对象的三特征
    201521123083《Java程序设计》第四周学习总结
    201521123083《Java程序设计》第二周学习总结
    201521123083 《Java程序设计》第6周学习总结
    《Java程序设计》第1周学习总结
    201521123083《Java程序设计》第5周学习总结
    《Java程序设计》第3周学习总结
    201521123083 《Java程序设计》第7周学习总结
  • 原文地址:https://www.cnblogs.com/Skypeduty1225/p/15003669.html
Copyright © 2011-2022 走看看