zoukankan      html  css  js  c++  java
  • 【算法】插入排序

    插入排序类似于玩扑克牌时候的排序方式:

    首先将待排序序列分为有序集和无序集,明显初始状态下,有序集为待排序序列的第一个元素,其余的为无序集。

    算法代码为:

    #include <stdio.h>
    #include <stdlib.h>
    
    void insertationSort();//插入排序 
    
    
    int main(int argc, const char * argv[])
    {
        
        insertationSort();
        return EXIT_SUCCESS;
    }void insertationSort()
    {
    
        int phone[10] = {3,5,7,2,5,9,8,90,54,35};
        int temp = 0;
        int i = 0,j = 0,n = 0;
        for (i = 1; i < 10; i ++) { //外层循环,由第二个元素到最后一个元素
            temp = phone[i];
            j = 0;
            while (temp >= phone[j] && j < i){ //在有序集中扫描
                j ++;
            }
            
            if (temp < phone[j]) {  //有序集中含有比哨兵大的元素,找到其位置进行交换并且将哨兵移动到相应位置,否则哨兵位置固定不动。
                for (n = i;n > j; n --) {
                    phone[n] = phone[n -1];
                }
                phone[j] = temp;
            }
            //否则有没有
            
            printf("第%d趟:   ",i);
            for(j =0; j < 10;j ++)
            {
                
                printf("%d   ",phone[j]);
                
            }
            
            printf("\n");
        }
        
    
    
    }
    


  • 相关阅读:
    16
    15
    14
    13
    12
    11
    10
    python包管理器修改镜像地址
    Linux环境下安装hadoop分布式集群+问题总结
    解剖css中的clear属性
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3041018.html
Copyright © 2011-2022 走看看