//选择排序
#include "stdafx.h"
using namespace std;
#include<vector>
#include<string>
class Solution
{
public:
static int* bubbleSort(int* array, int len)
{
int current;
int preIndex;
for (int i = 0; i < len; i++)
{
current = array[i+1]; //从未排序的第一个开始
preIndex = i; //preIndex 是已经排序好的数组的最后一个 下标
while (current>0 && current< array[preIndex]) //拿current 从后往前比较
{
// case1:
// { 1, 5, 7, 6, 2, 3 }; 比如说6、往前找、找到5比6小、把6插在5后面
array[preIndex + 1] = array[preIndex]; //找到比 current 小的、把current 插到这个数的前面,,,这个数往后移一位
preIndex--; //只要current往前走一步、之前这个位置上的就要往后移一位
//这里往前查的时候、刚好找到了把 current换上去、
// 这里已经找到了、但是还要走case 2、所以要--、相当于所有的位置不变
}
// case 2:
array[preIndex+1] = current; //提出来一看、已经是排好序的、直接查下一个、把index +1 就是下一个要找的
}
return array;
}
};
int main()
{
int aa[] = { 1, 5, 7, 6, 2, 3 };
Solution sou;
sou.bubbleSort(aa, 6);
return 1;
}