#include//氣泡排序,思想:從最末位開始 往前一位一位比較,比前一位小的話,就交換位置
//兩個for,第乙個for迴圈用於記錄已排序的位置,第二個for迴圈用於已排序位置到結束位置之間的氣泡排序
void popsort(int *p ,int n)
} }}//選擇排序,由前往後選擇最小的數。一輪比較完後,將最小的數放到前面
//兩個for迴圈,第乙個for用於固定位置,第二個for用於查詢固定位置後面最小的數,然後將最小的數和固定位置上的數交換
void selectsort(int *p,int n)
if (k != i)
}}//插入排序,插入前面都是已經順序排序的序列。
//從第二個數開始(第乙個數本身就是已排序序列),依次插入前面已排序的序列
void insertsort(int *p,int n)
else
} }}
void swap(int *a,int *b)
//快速排序,時間複雜度o(logn)。二分法思想,每二分一次就能確定乙個數的準確位置
//演算法思想:取第乙個數為哨兵,然後從最後面的數依次和哨兵比較(a、比哨兵的值小,就交換end和begin兩個位置的值。否則end--,繼續比較.
//找到乙個比哨兵小的值後。就開始從前面begin位置和哨兵值比較(b、比哨兵的值大,就交換begin和end兩個位置的值。否則begin++,繼續比較。
//------直到begin和end相等,結束乙個遞迴,將哨兵的值賦值給begin的位置,這個位置就是該哨兵準確的位置
//**,三個while迴圈:大while迴圈,確保完整掃瞄一遍資料,第二個while迴圈用於,end和哨兵的比較,第三個while迴圈用於,begin和哨兵的比較
void quicksort(int *p,int ibegin,int iend)
} while(ibegin < iend)
}} p[ibegin] = ivalue;
quicksort(p,i,ibegin-1);
quicksort(p,ibegin+1,j);
}void main()
; //popsort(isuzu,10);
//selectsort(isuzu,10);
//insertsort(isuzu,10);
quicksort(isuzu,0,10);
int i=0;
while(i<11)
}
氣泡排序 選擇排序 插入排序 快速排序
氣泡排序 元素兩兩比較,大的往後放,經過一輪比較後,那麼最大的元素就會出現在最後面。public static void main string args for int j 0 j arr i 1 system.out.println arrays.tostring arr 每次拿乙個元素,跟他後...
氣泡排序 選擇排序 快速排序 插入排序
排序只對一維資料有意義.兩層迴圈,第一層是遍歷每乙個元素.第二層迴圈,讓兩兩之間進行比較交換.時間複雜度 o n 2 空間複雜度 o 1 穩定性 穩定的 def buble sort arr for i in range len arr 1 for j in range len arr i 1 if...
php 氣泡排序,選擇排序 插入排序 快速排序
1.氣泡排序 arr array 1,43,54,62,21,66,32,78,36,76,39 function getpao arr return arr 2.選擇排序法 function select sort arr if p i return arr 3.插入排序法 function in...