当前位置:   article > 正文

指针操作数组

指针操作数组

指针可以实现操作函数和操作数组。

指针操作一维整型数组。

指针操作一维整型数组的时候,需要实现数组的

1、逆序

2、排序、快速排序

3、查找

在指针操作的过程中一般函数的传参都是*begin *end

使用指针实现数组逆序 

使用指针实现排序

快速排序的思想

第一步:确定一个基准位置。

第二步:从右端end开始寻找一个比基准值小的数。

第三步:从左端begin开始寻找一个比基准值大的数。

第四步:交换找到的两个值。

第五步:当begin与end重合时,交换基准值与相遇值。

第六步:再次调用该函数形成递归,不过左右端的地址修改

第七步:当begin>end,返回return ;即停止循环。

  1. #if 1
  2. void swap(int * a, int * b)
  3. {
  4. int t = *a;
  5. *a = *b;
  6. *b = t;
  7. }
  8. void quickSort(int * begin, int * end)
  9. {
  10. int * left = begin;
  11. int * right = end;
  12. int * k = begin;
  13. while(begin <= end)
  14. {
  15. if(begin < end && *end > *k)
  16. {
  17. --end;
  18. }
  19. if(begin < end && *begin < *k)
  20. {
  21. ++begin;
  22. }
  23. swap(begin,end); //如果找到不满足以上if的交换两个值
  24. }
  25. swap(begin,k); //一旦外层begin开始大于end说明一层循环结束,交换最终begin和end停留的位置和基准位置上的值。
  26. quickSort(left, end - 1);
  27. quickSort(begin + 1, right); //此时的begin与end已经相遇,即相等
  28. }
  29. #endif
  30. void severSort(int * begin, int * end)
  31. {
  32. while(begin < end)
  33. {
  34. char t = *begin;
  35. *begin = *end;
  36. *end = t;
  37. ++begin;
  38. --end;
  39. }
  40. }
  41. int main()
  42. {
  43. char s[] = "how are you";
  44. severSort(s, s+10);
  45. }

static 修饰局部变量和全局变量,将变量定义在静态区,延长变量的生命周期。其特点是只能被初始化一次,其值具有继承性。

与extern在变量声明中使用,使用其他文件中的变量在该文件中声明。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/55244
推荐阅读
相关标签
  

闽ICP备14008679号