码迷,mamicode.com
首页 > 编程语言 > 详细

交换排序---快速排序

时间:2018-11-17 22:20:51      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:递归   color   依次   ++   while   定义   循环   排序   quic   

 将需要排序的数组,定义一个标准数字,和一个开始位置(下标),和一个最后位置 (下标)   (标准数字是开始位置的数字)   (6,8,2,9,4,12,1)

 先在最后位置开始,把最后位置的数字和标准数字比较,如果最后位置的数字比标准数字大,则将最后位置向前移动一位

 如果最后位置的数字比标准数字小,则将最后位置的数字赋给开始位置的数字,依次比较,先将数组排成         (1,4,2,6,8,9,12)

 下面将(1,4,2,6,8,9,12)分成两个数组(1,4,2,6)和(8,9,12)

 再将(1,4,2,6)数组和(8,9,12)数组进行依次递归

 1         //把数组中的第0个数组作为标准数
 2         int stard=arr[start];
 3         //记录需要排序的下标
 4         int low=start;
 5         int high=end;
 6         //循环找比标准数大的数和比标准数小的数
 7         while(low<high){
 8             //右边的数字比标准数大
 9             while(low<high&&stard<=arr[high]){
10                 high--;
11             }
12             //右边的数字比标准数小,使用右边的数字替换左边的数
13             arr[low]=arr[high];
14             //如果左边的数字比标准数小
15             while(low<high&&arr[low]<=stard){
16                 low++;
17             }
18             //如果
19             arr[high]=arr[low];
20         }
21         //把标准数据给低所在的位置
22         arr[low]=stard;
23         //处理所有的小的数字
24         quickSort(arr,start,low);
25         //处理所有的大的数字
26         quickSort(arr,low+1,end);

 

交换排序---快速排序

标签:递归   color   依次   ++   while   定义   循环   排序   quic   

原文地址:https://www.cnblogs.com/axu521/p/9975736.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!