函数指针的应用 把函数指针作为函数的参数 设计一个通用的排序函数,可以排序任何类型 的数据(比如struct类型) struct User { 按姓名排:Aice,Bob,Carol char *name; int dept; ; 按系号排:Carol,.Bob,Alice User heads[]= “Alice'”,10, “Bob”,5, “Carol'",1 ; LoCCS
函数指针的应用 把函数指针作为函数的参数 设计一个通用的排序函数,可以排序任何类型 的数据 (比如struct类型) struct User { char *name; int dept; }; User heads[ ]={ “Alice” , 10, “Bob” , 5, “ Carol” , 1 }; 按姓名排:Alice, Bob, Carol 按系号排:Carol, Bob, Alice
气泡排序法(回顾) 对数组元素进行扫描。第一遍扫描冒出一个最 大的气泡,放入最后一个位置。然后对剩余元 素再进行第二次冒泡,冒出最大的泡放入倒数 第二个位置,依次执行到最后一个元素。 ©伪代码表示 For (i=1;i<n;++i) 从元素0到元素n-进行冒泡,最大的泡 放入元素n-i; LoCCS
气泡排序法 (回顾) 对数组元素进行扫描。第一遍扫描冒出一个最 大的气泡,放入最后一个位置。然后对剩余元 素再进行第二次冒泡,冒出最大的泡放入倒数 第二个位置,依次执行到最后一个元素。 伪代码表示 For (i=1; i<n; ++i) 从元素0到元素n-i进行冒泡,最大的泡 放入元素n-i;
冒泡过程 ©从头到尾依次处理:比较相邻的两个元素,如 果大的在前小的在后,就交换这两个元素 这样经过从头到尾的检查,最大的一个就被交 换到最后了 © 如果在一次起泡中没有发生交换,则表示数据 都已排好序,不需要再进行起泡 LoCCS
冒泡过程 从头到尾依次处理:比较相邻的两个元素,如 果大的在前小的在后,就交换这两个元素 这样经过从头到尾的检查,最大的一个就被交 换到最后了 如果在一次起泡中没有发生交换,则表示数据 都已排好序,不需要再进行起泡