zoukankan      html  css  js  c++  java
  • 插入排序

     1 void insertion_sort(int *list,  int n)
     2 {
     3      for(int p = 1; p < n; p++)
     4     {
     5          int temp = list[p];    //取一张牌
     6          int i;
     7          for(i = p; i >0 && list[i-1] > temp; i--)
     8          {
     9               list[i] = list[i-1];  //前面的牌移位
    10          }    
    11          list[i] = temp;  //牌落位
    12     }      
    13 }

        最近比较闲,复习一下数据结构和算法的内容;网易云课堂上,浙江大学陈越老师讲的非常形象,很多的时候,我们学习完某个算法或者数据结构,很快就忘记了。其实这不能怪我们;因为人类的大脑本身就不善于记忆一些抽象的符号,我们擅长记忆的是结构化的图形,所以把抽象的东西具象化,这是学习和记忆的关键。

        之前在学习插入排序的时候,大部分看的是大学教科书,写的晦涩难懂,很多的时候就给你一段代码,连注释都很少,学习的时候很枯燥,并且学完一遍很快就忘记了。

      其实插入排序很简单,拿个类比,就跟我们打扑克牌一样,我们总习惯按照,从小到大的顺序从左到右排列,那么你抽一张新牌的时候如果前面没有比它大的,就放到最后;如果有比它大的,那么就插到中间,比它大的那些牌一次后移一个位置。

  • 相关阅读:
    C#写文本文件,如何换行(添加换行符)
    C#使用oledb操作excel文件的方法
    winform之combobox
    vs2010快捷键
    可以下载一些书籍代码的网站
    对php和java里面的static函数和static的一些理解
    10.4-CMake find 模块
    6.25-Git 技巧
    6.4-Git Command
    2.25-CMake Tutorial
  • 原文地址:https://www.cnblogs.com/alex-zhou/p/5692092.html
Copyright © 2011-2022 走看看