資料結構小白之選擇排序演算法

2021-09-29 06:50:00 字數 1844 閱讀 9616

1.1 思路

先準備乙個陣列 intarr=

從欲排序的資料中,按照指定的規則選出某一元素,再按照規定交換位置後達到排序的目的

規則:

第一次從arr[0]-arr[n-1]中選取最小值,和arr[0]交換

第二次從arr[1]-arr[n-1]中選取最小值,和arr[1]交換

第三次從arr[2]-arr[n-1]中選取最小值,和arr[2]交換

第n-1從arr[n-2]-arr[n-1]中選取最小值,和arr[n-2]交換

1.2舉個栗子

1.2.1: 準備乙個陣列,加上一些顯示操作

int arr = ;

system.out.print("排序前:");

system.out.println(arrays.tostring(arr));

1.2.2: 第一輪操作

public static int selectedfirstsort(int arr) 

}//傳統的交換方法

//開始進行交換 將最小值放在arr[0]

if (minindex != 0)

"第一輪過後:" + arrays.tostring(arr));

return arr;

}

1.2.3: 第二輪操作

public static int selectedsecondsort(int arr) 

}//開始進行交換 將最小值在arr[1]

if (minindex != 1)

"第二輪過後:" + arrays.tostring(arr));

return arr;

}

1.2.3 找到規律,在外面套乙個外迴圈

//選擇排序

public static int selectallsort(int arr)

}//開始進行交換 將最小值放在arr[0]

if (minindex != i)

"第"+(i+1)+"輪過後:" + arrays.tostring(arr));

}return arr;

}

1.2.4 調一波主函式

public static void main(string args) ;

system.out.print("排序前:");

system.out.println(arrays.tostring(arr));

int firstarray = selectedfirstsort(arr);

system.out.println("第一輪過後:"+arrays.tostring(firstarray));

//第一輪過後 1 119 34 101

int secondarray = selectedsecondsort(firstarray);

system.out.println("第二輪過後:"+arrays.tostring(secondarray));

//第二輪過後 1 34 119 101

//需要經過array.length-1輪

資料結構 排序演算法之選擇排序

一 選擇排序 最差的排序演算法 在選擇排序中,假定我們需要公升序,因此在每次排序中,需要找到最大的元素,將其放在最後,在每一次的迴圈中,都是將最大的元素放在最後,因此對於資料較多的陣列,迴圈的次數將與陣列中元素的個數一致,因此,在對於這種陣列進行排序時,將十分的浪費時間。有關選擇排序的思路,如下所示...

資料結構中排序演算法之選擇排序演算法

對於選擇排序,它的時間複雜度為o n 2 空間複雜度為o 1 它的具體思想為 對於需要進行排序的陣列a,我們在每一趟排序中找到陣列中最小或者最大的元素,記其為a j 然後將其與每一趟排序時未排好序部分的第乙個元素進行交換,以此類推,直到陣列a中元素全部有序排列。在這裡,在每一趟排序查詢陣列中最小或最...

資料結構排序演算法之選擇排序法

選擇排序法 是對定位比較交換法 也就是氣泡排序法 的一種改進。選擇排序的基本思想是 每一趟在n i 1 i 1,2,n 1 個記錄中選取關鍵字最小的記錄作為有序序列中第i個記錄。void choosesort int a,int n 交換最小值與第i個元素 tmp a indexofminnum a...