交換排序 氣泡排序 快速排序

2021-09-02 20:36:31 字數 992 閱讀 6118

void bubblesort(int arr, int size)

}if (issorted == 1)

}}

void _quicksort(int arr, int left, int right)

if (left > right)

int div = partition_01(arr, left, right);//分成左右小區間[left,div-1];[div+1,right]

_quicksort(arr, left, div - 1);

_quicksort(arr, div + 1, right);

}void quicksort(int arr, int size)

<1>.hover法  (左右指標)時間複雜度:o(n)

int partition_01(int arr, int left, int right)

swap(arr + begin, arr + end);

}swap(arr + begin, arr + end);

return begin;

}

<2>.挖坑法

找個變數pivot存基準值,則需要交換的值的位置為坑,直接可以換過來

begin,end對應的即為坑

int partition_02(int arr, int left, int right)

arr[begin] = arr[end];

}arr[begin] = pivot;

return begin;

}

<3>.左右指標法

int partition_03(int arr, int left, int right)

}swap(arr + div, arr + right);

}

交換排序 氣泡排序,快速排序

交換排序 氣泡排序,快速排序 執行環境 vs2010 include include include include define ok 1 define true 1 define false 0 define maxsize 50 typedef struct redtype typedef s...

交換排序(快速排序 氣泡排序)

1.快速排序 先從數列中取出乙個數作為基準數 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊 再對左右區間重複第二步,直到各區間只有乙個數。以乙個陣列作為示例,取區間第乙個數為基準數。0 1 2 3 4 5 6 7 8 9 72 6 57 88 60 42 83 73 4...

交換排序(氣泡排序,快速排序)

氣泡排序演算法 顧名思義,就是將最重的 最大元素 浮動到最下面,最輕的 最小元素 浮動到最上面 演算法過程 1.迴圈陣列長度length 1次,下標為 因為每次迴圈後就會出現乙個最大 公升序 或最小 降序 只需要比較n 1就行 1.1 在前 length i個元素中迴圈因為已經有i個已經有序 1.1...