排序演算法 二 選擇排序

2021-08-18 02:52:03 字數 479 閱讀 9756

演算法實現:

selectsort.c:

#include void selectsort(int* arr,int len)

if(min!=i)

for(k=0;k演算法思想:保證將要成為有序範圍內的那個位置的值是無序裡的最小值。ex:從陣列選出最小的放在第乙個位置上,在從剩餘陣列選出最小放在第二個位置上,以此類推。

例子分析:

1.為arr[0]這個位置找出最小值,首先要假設它已經是最小值,用來和其它值進行比較,通過遍歷並和其餘元素比較,找到最小元素。交換最小元素到arr[0];例子中arr[0]應該是1,1這個元素原來的位置下標為1,所以arr[0]和arr[1]交換元素。

2.現在arr[0],已經找到它應該放的最小值了。現在輪到arr[1],方法如上,除了它遍歷的範圍就不包括arr[0],其它一樣。以此類推,直至陣列最後乙個元素找到合適的值。

這個演算法也是冒泡演算法的改進版本,和插入排序很相似,思想上有些許的不同。

排序演算法 二 選擇排序

之前給大家分享了排序演算法裡面比較簡單的氣泡排序,今天來分享一下選擇排序的演算法 選擇排序的思想 1.以公升序為例 在一組數中選出最大的數放到第乙個位置,或者選出最小的數放到最後乙個位置,2.在選取剩餘元素的最大數放到第二個位置,或選出剩餘元素中的最小值放到倒數第二哥位置,3.依次往下選取,直到遍歷...

排序演算法(二) 選擇排序

選擇排序是一種簡單的直觀的排序演算法,基本原理如下 對於給定的一組記錄,經過一輪比較後得到最小的記錄,然後將該記錄的位置與第乙個記錄的位置交換 接著對不包括第乙個記錄以外的其他記錄進行第二次比較,得到最小記錄並與第二個位置記錄交換,重複該過程,直到進行比較的記錄只剩下乙個為止 從簡單排序的過程來看,...

排序演算法二 選擇排序

首先來看一下簡單選擇排序 思想 在未排序的序列中選出最小的元素和當前序列的第乙個元素互換,然後在剩下的元素中選出乙個與剩下元素的第乙個位置互換,依次交換,最後就會形成乙個從小到大的已排序序列。void selectsort int a,int n 迴圈完一遍 已找到最小元素 交換 a i a i a...