1. 程式人生 > >雙指標在演算法題中的應用

雙指標在演算法題中的應用

利用start和end指標記錄每層元素的個數,即每層壓入的元素個數,當元素一個個從list中remove時start++,直到與end相遇,成功列印了一層元素。

利用low和high指標,通過雙指標的線性移動來改變中間狀態變數,從而達到搜尋的目的

4.快速排序

5.給定一個數組,陣列中元素有奇數有偶數。要求對陣列進行處理,使得陣列的左邊為奇數,右邊為偶數

void partition(int *arr,int n){
	int i = 0;
	int j = n-1;
        while(1){
            while(i<j && arr[i]%2 == 1) i++;
	        while(i<j && arr[j]%2 == 0) j--;
	        if(i<j){
	            int temp = arr[i];
	            arr[i] = arr[j];
	            arr[j] = temp;
	        }
        }
 }