排序思路:每次使用待排序数组第一个位置(不一定是arr[0],待排序数组长度会越来越短)的数据和之后的数据比较,找到更小的那个数据然后两者交换。这样的话,小的数据就慢慢挪到数组的前面去了,数组也就变得有序,每一轮排序只需要进行一次的交换。
代码的实现:
for(int i = 0;i< N-1; i++) {
/*保存最小元素索引,最小数据索引从0开始*/
int minIndex = i;
/*循环查找更小的数据*/
for (int j = i + 1; j < N; j++) {
if (arr[j] < arr[minIndex]) {
/*更新索引*/
minIndex = j;
}
}
/*与原来的索引比较,不同则进行数据交换*/
if (minIndex != i) {
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}