插入排序

 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 }

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

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

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

相关文章
相关标签/搜索