詳細說明乙個快速排序的例子

2021-09-24 13:53:47 字數 755 閱讀 3358

關於快速排序的邏輯原理是這樣的:

將兩個指標i,j分別指向表的起始和最後的位置,t為臨時變數。

反覆操作以下兩步:

(1)j逐漸減小,並逐次比較j指向的元素和目標元素的大小,若p(j)(2)i逐漸增大,並逐次比較i指向的元素和目標元素的大小,若p(i)>t則交換位置。

直到i,j指向同乙個值,迴圈結束。

下面是原始碼

#include #include void swap(int a,int i,int j)	}

/* 快速排序 */

void quick_sort(int x,int left, int right)

swap(x, left, temp);

quick_sort(x,left, temp-1);

quick_sort(x,temp+1, right);

}int main()

; int i=0,len;

printf("start ....\n");

len=(int)sizeof(number)/sizeof(*number);

printf("len =%d\n",len);

quick_sort(number,0,9);

for(i=0;i<10;i++)

printf("\n");

printf("end ....\n");

exit(0);

}

**已經編譯除錯過了,親測可行。

HashMap排序的乙個例子

已知乙個 hashmap 集合,user 有 name string 和 age int 性。請寫乙個方法實現對 hashmap 的排序功能,該方法接收 hashmap為形參,返回型別為 hashmap,要求對 hashmap 中的 user 的 age 倒序進行排序。排序時 key value 鍵...

就乙個快速排序。。。

話說,每次寫題的時候我都是呼叫stl的sort,自己卻還是很難快速寫出乙個快排。正好作業布置這個了。就寫一下,熟練一下,順便背一下記住。萬一以後面試問到了,也可以秒了。include include include using namespace std const int maxn 10000 5...

乙個簡單的例子說明原子性操作

原子性操作例子舉例 a想要從自己的帳戶中轉1000塊錢到b的帳戶裡。那個從a開始轉帳,到轉帳結束的這乙個過程,稱之為乙個事務。在這個事務裡,要做如下操作 1.從a的帳戶中減去1000塊錢。如果a的帳戶原來有3000塊錢,現在就變成2000塊錢了。2.在b的帳戶裡加1000塊錢。如果b的帳戶如果原來有...