中心思想就是 隨機找乙個pivot(也就是隨機選擇乙個數) 然後左邊乙個指標,右邊乙個指標, 左指標往右移, 右指標往左移, 當左指標遇到比pivot大的數就停下, 當右指標遇到比pivot小的數也停下, 然後交換這兩個數.繼續移動這兩個指標,當左右指標相遇時(也就是指向同乙個數時)停下, 將這個數和pivot交換.此時pivot就已經完成了其排序.
剩下的數可以分為pivot左半邊和pivot右半邊,分別從這兩邊選擇pivot, 再重複操作,直到排序完成.
我的經驗是:
pivot的對側指標先移動.
我們老師講的快排有些不一樣, 左右指標可以交換順序, 也就是相遇後可以繼續移動,其實也是一樣的道理, pivot選最右側就和最終的左指標交換, 我用c++寫了一下:
//
// main.cpp
// cpppractice
//// created by macbook on 2020/3/24.
//#include
using
namespace std;
void
quicksort
(int a,
int,
int)
;int
main()
, k;
int len =
sizeof
(array)
/sizeof
(int);
cout <<
"the orginal arrayare:"
<< endl;
for(k =
0; k < len; k++
) cout << array[k]
<<
",";
cout << endl;
quicksort
(array,
0, len -1)
; cout <<
"the sorted arrayare:"
<< endl;
for(k =
0; k < len; k++
) cout << array[k]
<<
",";
cout << endl;
return0;
}void
quicksort
(int arr,
int left,
int right)
while
(l <= r && arr[r]
>= p)
if(l < r)
}swap
(arr[l]
, arr[right]);
quicksort
(arr, left, l -1)
;// 遞迴呼叫
quicksort
(arr, l +
1, right);}
}
地理資訊系統總結
地理資訊系統的構成結構 地理資訊系統主要由四部分組成 即計算機硬體系統,計算機軟體系統,空間資料及系統的組織和使用維護人員即使用者。其核心內容是計算機硬體和軟體,空間資料反應了應用地理資訊系統的資訊內容,使用者決定了系統的工作方式。計算機硬體系統是計算機系統中實際物理裝置的總稱,主要包括計算機主機,...
地理資訊系統 座標系統
gis的基本原則是 要在一起使用的圖層必須在空間上相互匹配,否則就會發生明顯錯誤 給使用者通常在平面上對地圖進行處理,這些地圖的要素代表地球表面空間要素的位置是用x軸和y軸表示的地理座標系統。地球表面的空間要素是基於經緯度表示的地理座標系統。所以專案一開始就需要確定統一的座標系統。地圖投影 就是從一...
QGIS(Quantum 地理資訊系統)介紹
地理資訊系統 gis,geographic information system qgis 原稱quantum gis 是乙個使用者介面友好的開源桌面端軟體,支援資料的視覺化 管理 編輯 分析以及印刷地圖的製作,並支援多種向量 柵格與資料庫格式及功能。qgis可執行在linux unix mac o...