微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 周立功教授谈迭代器模式设计

周立功教授谈迭代器模式设计

时间:08-26 来源:周立功单片机 点击:

9          int *pNext;                                        // pNext指向p1所指向的元素的下一个元素

10 

11        while(p2 != begin){

12             p1 = begin;

13             flag = 1;

14             while(p1 != p2){

15                   pNext = p1+1;

16                   if(*p1>*pNext)                            // 比较指针所指向的值的大小

17                   {

18                        swap(p1, pNext);                   // 交换2个指针的内容

19                        flag = 0;                          // flag = 0,表示2个指针的内容交换

20                   }

21                   p1++;                              // p1指针后移

22             } 

23             if(flag)  return;                              // 没有交换,表示已经有序,则直接返回

24             p2--;                                           // p2指针前移

25        }

26  }

27

28  int main(int argc, char *argv[])

29  {

30        int a[]={5, 3, 2, 4, 1};

31        int i = 0;

3233        bubbleSort(a, a+4);

34        for(i = 0; i < sizeof(a) / sizeof(a[0]); i++){

35              printf("%d\n", a[i]);

36        }

37        return 0;

38  } 

如果任何一次遍历没有执行任何交换,则说明记录是有序的且终止排序。其中,p1指向数组的首元素,pNext指向p1所指向的元素的下一个元素,p2指向数组的尾元素(图 3.21(a))。如果*p1> 如果任何一次

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top