package com.structure.demo; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class SelectSortActivity extends Activity { private int[] array = {3, 5, -1, 6, 2, 9, 0}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); selectSort(array); } /** * 选择排序 * * @param array */ private void selectSort(int[] array) { for (int i = 0; i < array.length-1; i++) { int min = array[i]; int minIndex = i; for (int j = i+1; j < array.length; j++) { if (min > array[j]) { //给最小值重新赋值,给最小下标索引重新赋值 min = array[j]; minIndex = j; } } //交换位置 if (minIndex != i) { array[minIndex] = array[i]; array[i] = min; } } for (int i = 0; i < array.length; i++) { Log.i("tag", "" + array[i]); } /* //推导过程 //假设第一个数就是最小值依次从第二个数开始比较 int min = array[0]; int minIndex = 0; for (int j = 1; j < array.length; j++) { if (min > array[j]) { //给最小值重新赋值,给最小下标索引重新赋值 min = array[j]; minIndex = j; } } //交换位置 if (minIndex != 0) { array[minIndex] = array[0]; array[0] = min; } for (int i = 0; i < array.length; i++) { Log.i("tag", "经过第一轮比较之后的集合" + array[i]); } Log.i("tag", "=================================="); //经过第一轮后就已经把最小的值放到了数组的第一位 //第二轮假设第二个数就是最小的值依从第三个数开始比较 min = array[1]; minIndex = 1; for (int j = 1 + 1; j < array.length; j++) { if (min > array[j]) { //给最小值重新赋值,给最小下标索引重新赋值 min = array[j]; minIndex = j; } } //交换位置 if (minIndex != 1) { array[minIndex] = array[1]; array[1] = min; } for (int i = 0; i < array.length; i++) { Log.i("tag", "经过第2轮比较之后的集合" + array[i]); }*/ } }
算法和数据结构——选择排序
最新推荐文章于 2020-08-21 16:52:20 发布