Browse Source

上传文件至 '随机数排序C++'

lisihan 5 months ago
parent
commit
ac36fb8c7b
2 changed files with 8 additions and 2 deletions
  1. 5 2
      随机数排序C++/algo.cpp
  2. 3 0
      随机数排序C++/algo.h

+ 5 - 2
随机数排序C++/algo.cpp

@@ -4,11 +4,14 @@
 #include<time.h>
 void QuickSort(int* arr, int left, int right)
 {
+    //直到不合理情况出现结束递归
     if (left >= right) 
     {
         return;
     }
+    //找到"left"对应在数组的位置,并将保存位置的序号赋给position
     int position = PartSort(arr, left, right);
+    //分别对position左右进行进行快速排序
     QuickSort(arr, left, position - 1);
     QuickSort(arr, position + 1, right);
 }
@@ -17,7 +20,7 @@ void QuickSort(int* arr, int left, int right)
 int  PartSort(int* arr, int left, int right)
 {
     int key = arr[left];
-
+    //找到"left"的位置,并保证左边比其小,右边比其大
     while (left < right) {
         while (left < right && arr[right] >= key) 
         {
@@ -31,7 +34,7 @@ int  PartSort(int* arr, int left, int right)
         }         
         swap(arr, left, right);
     }
-
+    //将找出的最终位置返回
     return left;
 }
 

+ 3 - 0
随机数排序C++/algo.h

@@ -1,5 +1,8 @@
 #pragma once
+//快速排序
 void QuickSort(int* arr/*O*/, int left/*I*/, int right/*I*/);
+//划分
 int  PartSort(int* arr/*IO*/, int left/*I*/, int right/*I*/);
+//交换数组内部值
 void swap(int* arr/*IO*/, int left/*I*/, int right/*I*/);