选择排序
1.先求最小值
2.找到位置
3.把位置的数放到有序区
4.重复
for (int j = 0; j < count - 1; j++) { int minIndex = j;// 最小值的角标 for (int i = minIndex + 1; i < count; i++) { if (array[minIndex] > array[i]) { minIndex = i; } } if (minIndex != j) { // 优化 无序区的头 不是第一个 // 最小值 放入头部 int temp; temp = array[minIndex]; array[minIndex] = array[j]; array[j] = temp; } }
for (int i = 1; i < count; i++) { int j = i; // 确定当前坑的位置 int temp = array[j]; // 目标出列 while (j > 0 && temp < array[j - 1]) { array[j] = array[j - 1]; // 向后顶大的 j--; // 向前移坑 } array[j] = temp; // 目标进坑 }
原文地址:http://blog.csdn.net/wanglongblog/article/details/45420485