加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

排序-快速排序

发布时间:2020-12-14 04:39:56 所属栏目:大数据 来源:网络整理
导读:1 #includeiostream 2 using namespace std; 3 4 void quickSort( int arr[], int L, int R) // L和R代表两个指针,分别指向首元素和尾元素 5 { 6 if (L=R) // 递归出口 7 return ; 8 int left = L; 9 int right = R; 10 int pivot = arr[left]; // 中枢,假
 1 #include<iostream>
 2 using namespace std;
 3 
 4 void quickSort(int arr[],int L,int R)//L和R代表两个指针,分别指向首元素和尾元素
 5 {
 6     if (L>=R)    //递归出口
 7         return;
 8     int left = L;
 9     int right = R;
10     int pivot = arr[left];    //中枢,假定首元素为中枢
11     while (left<right)
12     {
13         //比中枢大的元素排到中枢轴的右边,小的排到右边
14         while (left<right&&arr[right]>=pivot)
15         {
16             right--;
17         }
18         if (left < right)
19         {
20             arr[left] = arr[right];
21         }
22         while (left<right&&arr[left]<=pivot)
23         {
24             left++;
25         }
26         if (left < right)
27         {
28             arr[right] = arr[left];
29         }
30         if (left >= right)
31         {
32             arr[left] = pivot;
33         }
34     }
35 
36     //对中枢轴左右序列继续快速排序
37     quickSort(arr,L,right - 1);
38     quickSort(arr,right + 1,R);
39 }
40 
41 int main()
42 {
43     int arr[] = { 1,3,2,5,8,1,11,10 };
44     int n = 10;
45     quickSort(arr,0,9);
46 
47     for (int i = 0; i < n; i++)
48     {
49         cout << arr[i] << endl;
50     }
51     system("pause");
52     return 0;
53 }

参考视频:https://www.bilibili.com/video/av62621532?t=534

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读