//快速排序,去基準值,左同時向中間靠攏
//左邊遇到大的停止,右邊遇到小的停止
//交換大小數的位置,兩個指標到同一位置時,與基準值交換
//最終結果是小…基準值…大
#include #include //基準值的取法隨意時,容易造成時間複雜度很高的情況
//三數取中法:取三個數,左端右端,中間,選擇大小處於中間的數作為基準值
int getmiddleindex(int *array,int left,int right)
else
}//快排方法1
int partion1(int *array,int left,int right)
}
//用遞迴的方式快速排序
void quicksort(int*array,int left,int right)
}//空間複雜度o(nlogn) n為遞迴深度
//用迴圈的方式快速排序–用到棧
#include "stack.h"
void quicksortnor(int *array,int size)
}}
二叉樹,排序二叉樹
說到二叉樹,這可是資料結構裡面的非常重要的一種資料結構,二叉樹是樹的一種,本身具有遞迴性質,所以基於二叉樹的一些演算法很容易用遞迴演算法去實現。作為一種非線性結構,比起線性結構還是相對複雜的,很多人甚至看不懂演算法的意思,不能理解。其實一開始接觸這些東西還是挺暈的,不過你多看幾遍,上機實現可能你就會...
排序二叉樹or搜尋二叉樹or查詢二叉樹
排序二叉樹,搜尋二叉樹,查詢二叉樹都是乙個意思,只是叫法不同而已。下面的文章中我們統稱為排序二叉樹。本文主要是針對高中資訊學,因此其中不涉及到指標,所有需要用指標的地方都直接使用陣列進行模擬。排序二叉樹定義 1 若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值 2 若右子樹不空,則右子...
排序二叉樹or搜尋二叉樹or查詢二叉樹
排序二叉樹,搜尋二叉樹,查詢二叉樹都是乙個意思,只是叫法不同而已。下面的文章中我們統稱為排序二叉樹。本文主要是針對高中資訊學,因此其中不涉及到指標,所有需要用指標的地方都直接使用陣列進行模擬。排序二叉樹定義 1 若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值 2 若右子樹不空,則右子...