排序演算法哪家強之選擇排序

2021-09-24 05:18:36 字數 939 閱讀 6123

今天分享一種新的排序演算法-----選擇排序

選擇排序演算法實現原理:

以公升序為例:

首先假定陣列首元素為陣列元素中最大的元素,用maxpos來標記最大元素

接著遍歷陣列中其他元素,並將最大值與所遍元素比較,如果有那個元素大於maxpos標記的元素,就用maxpos來標記它(更新maxpos)

每一次遍歷選出陣列中最大值,並將其與陣列尾部元素交換,交換完畢之後更新尾部元素 再將maxpos標記陣列首元素

,然後重複上述操作

具體**如下,**解釋在注釋中.

#include#include//  交換函式

void swap(int *x,int *y)

// 排序演算法哪家強 之 選擇排序

void selectsort(int *array, int size)

// 每一次選出最大值就將其與陣列尾部元素交換

// 有可能原陣列的元素就是公升序序列,因此在交換之前先判斷一下

// 如果原陣列元素就在合適的位置上就沒有必要交換

if (maxpos != size - 1 - i)

} } }

// 列印陣列函式

void print(int *array, int size)

printf("\n");

}int main();

int size = sizeof(array) / sizeof(array[0]);

selectsort(array, size);

print(array, size);

system("pause");

return 0;

}

排序演算法哪家強之選擇排序2 雙管齊下版

昨天給大家分享了選擇排序,昨天我們用乙個標記符maxpos來遍歷待排序區間,然後每乙個遍歷,找出乙個最大值,然後將其放在區間的末尾,今天我們嘗試一種新的方法.這種方法更高效 快捷.原理如下 我們使用兩個標記符 maxpos 標記最大值元素位置 minpos 標記最小值元素位置 讓這兩個標記符同時從陣...

排序演算法 排序演算法之選擇排序

最近在學習排序演算法,就排序演算法中的四大經典排序 氣泡排序 快速排序 選擇排序 插入排序。會出一系列的講解排序演算法的部落格。今天繼快速排序之後整理一下選擇排序。選擇排序,就是從一列未排序的陣列中先選出最小 最大 的數,放在陣列的第一位,第一位原來的數字放在最小的原來的位置,再選出第二小的數,放在...

排序演算法之選擇排序 選擇排序 堆排序

直接選擇排序 如下 下面 是一次迴圈同時挑選出最大和最小數,並將其與左右交換 選擇排序 void selectionsort int a,int len swap a min a left 如果最大數的下標在為left,證明要交換的最大數已經被 換到min小標所表示的位置,只需要將right和min...