按地理位置排序演算法
① 你了解哪些排序演算法 請說明
冒泡排序來(Bubble Sort),是一自種計算機科學領域的較簡單的排序演算法。
它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。
插入排序 將一個記錄插入到已排序好的有序表中,從而得到一個新,記錄數增1的有序表。即:先將序列的第1個記錄看成是一個有序的子序列,然後從第2個記錄逐個進行插入,直至整個序列有序為止。
選擇排序 在要排序的一組數中,選出最小(或者最大)的一個數與第1個位置的數交換;然後在剩下的數當中再找最小(或者最大)的與第2個位置的數交換,依次類推,直到第n-1個元素(倒數第二個數)和第n個元素(最後一個數)比較為止。
其他排序太難
② 常用的原址排序演算法有那哪些
很多啊 比如冒泡 希爾 選擇 堆排序什麼的
非原地的也就歸並什麼的吧........
還有倍增排序int范圍需要65535額外空間、、、、
③ 在各類演算法中那種演算法排序是最快的
直接插入排序:當數據有序時,執行效率最好,此時的時間復雜度為O(n);當數據基本反序時,執行效率最差,此時的時間復雜度為O(n2)。所以當數據越接近有序,直接插入排序演算法的性能越好。
希爾排序 :時間效率為O(n(log2n)2)
直接選擇排序:時間效率為 O(n^2)——雖移動次數較少,但比較次數仍多。
堆排序:時間效率為O(nlog2n)
冒泡排序:時間效率為O(n^2) —因為要考慮最壞情況(數據元素全部逆序),當然最好情況是數據元素已全部排好序,此時循環n-1次,時間復雜度為O(n)
快速排序:
時間效率:一般情況下時間復雜度為O(nlog2n),最壞情況是數據元素已全部正序或反序有序,此時每次標准元素都把當前數組分成一個大小比當前數組小1的子數組,此時時間復雜度為O(n2)
④ 把全國的三十四省按地理位置排列一下
華北(北京、天津、河北、山西、內蒙)、華東(上海、山東、江蘇、安徽、江專西、浙江、福屬建)、華中(湖北、湖南、河南)、華南(廣東、廣西、海南、香港、澳門)、西南(重慶、四川、貴州、雲南、西藏)、西北(陝西、甘肅、寧夏、新疆、青海)、東北(黑龍江、吉林、遼寧)。(省以下行政區劃單位統計不包括台灣)。
⑤ 中國省份按照地理位置應該怎樣排名呢
網上查吧,最簡單的辦法。國家地理中心有一個通用的排法,由北而南、先東後西、再是港澳台
⑥ 簡述各種排序演算法的優缺點
一、冒泡排序
已知一組無序數據a[1]、a[2]、……a[n],需將其按升序排列。首先比較a[1]與 a[2]的值,若a[1]大於a[2]則交換 兩者的值,否則不變。再比較a[2]與a[3]的值,若a[2]大於a[3]則交換兩者的值,否則不變。再比 較a[3]與a[4],以此 類推,最後比較a[n-1]與a[n]的值。這樣處理一輪後,a[n]的值一定是這組數據中最大的。再對a[1]~a[n- 1]以相同方法 處理一輪,則a[n-1]的值一定是a[1]~a[n-1]中最大的。再對a[1]~a[n-2]以相同方法處理一輪,以此類推。共處理 n-1 輪 後a[1]、a[2]、……a[n]就以升序排列了。
優點:穩定;
缺點:慢,每次只能移動相鄰兩個數據。
二、選擇排序
每一趟從待排序的數據元素中選出最小(或最大)的一個元素,順序放在已排好序的數列的最後,直到全部待排序的數 據元素排完。
選擇排序是不穩定的排序方法。
n 個記錄的文件的直接選擇排序可經過n-1 趟直接選擇排序得到有序結果:
①初始狀態:無序區為R[1..n],有序區為空。
②第1 趟排序 在無序區R[1..n]中選出關鍵字最小的記錄R[k],將它與無序區的第1 個記錄R[1]交換,使R[1..1]和R[2..n]分別變 為記錄個數增加1 個的新有序區和記錄個數減少1 個的新無序區。
③第i 趟排序
第i 趟排序開始時,當前有序區和無序區分別為R[1..i-1]和R(1≤i≤n-1)。該趟 排序從當前無序區中選出關鍵字最 小的記錄 R[k],將它與無序區的第1 個記錄R 交換,使R[1..i]和R 分別變為記錄個數增加1 個的新有序區和記錄個數減少 1 個的新無序區。
這樣,n 個記錄的文件的直接選擇排序可經過n-1 趟直接選擇排序得到有序結果。
優點:移動數據的次數已知(n-1 次);
缺點:比較次數多。
三、插入排序
已知一組升序排列數據a[1]、a[2]、……a[n],一組無序數據b[1]、 b[2]、……b[m],需將二者合並成一個升序數列。 首先比較b[1]與a[1]的值,若b[1]大於a[1],則跳過,比較b[1]與a[2]的值, 若b[1]仍然大於a[2],則繼續跳過,直 到b[1]小於a 數組中某一數據a[x],則將a[x]~a[n]分別向後移動一位,將b[1]插入到原來 a[x]的位置這就完成了b[1] 的插入。b[2]~b[m]用相同方法插入。(若無數組a,可將b[1]當作n=1 的數組a)
優點:穩定,快;
缺點:比較次數不一定,比較次數越少,插入點後的數據移動越多,特別是當數據總量龐大的時候,但用鏈表可以解決 這個問題。
四、縮小增量排序
由希爾在1959 年提出,又稱希爾排序(shell 排序)。
已知一組無序數據a[1]、a[2]、……a[n],需將其按升序排列。發現當n 不大時,插入 排序的效果很好。首先取一增 量d(d<n),將a[1]、a[1+d]、a[1+2d]……列為第一組,a[2]、a[2+d]、 a[2+2d]……列為第二組……,a[d]、a[2d]、a[3d]……="" 列為最後一組以次類推,在各組內用插入排序,然後取d'<d,重復上述操="" 作,直到d="1。"
優點:快,數據移動少;=""
缺點:不穩定,d="" 的取值是多少,應取多少個不同的值,都無法確切知道,只能憑經驗來取。=""
五、快速排序=""
快速排序是冒泡排序的改進版,是目前已知的最快的排序方法。
="" 已知一組無序數據a[1]、a[2]、……a[n],需將其按升序排列。首先任取數據a[x]="" 作為基準。比較a[x]與其它數據並="" 排序,使a[x]排在數據的第k="" 位,並且使a[1]~a[k-1]中的每一個數="" 據a[x],然後采 用分治的策略分別對a[1]~a[k-1]和a[k+1]~a[n] 兩組數據進行快速排序。
優點:極快,數據移動少;
缺點:不穩定。
⑦ 常見的數據結構排序演算法中,一趟排序後能確定一個最終位置的有哪些
冒泡 簡單選擇 快速 堆
⑧ lbs中怎麼實現離自己最近排序演算法
剛做完的抄襲
#include <iostream>
using namespace std;
void BiInsertsort(int r[], int n) //插入排序(折半)
{
for(int i=2;i<=n;i++)
{
if (r[i]<r[i-1])
{
r[0] = r[i]; //設置哨兵
int low=1,high=i-1; //折半查找
while (low<=high)
{
int mid=(low+high)/2;
if (r[0]<r[mid]) high=mid-1;
else low = mid+1;
}
⑨ 最差適應演算法的空閑分區是按地址由大到小排列嗎
D
最壞適應分配演算法要求將所有的空閑分區按其容量從大到小的順序形成一空閑分區鏈,查找時只要看第一個分區能否滿足作業要求.
⑩ 以下哪種排序演算法對【1,3,2,4,5,6,7,8,9】進行的排序最快
改良的冒泡排序,當一輪循環中沒有交換就結束排序。只要2輪循環。