最简单的应该是冒泡排序法了,代码和时间结果如下:
最简单的就是冒泡排序法,实现的方法就是假设要从小往大排,那先从头开始遍历一遍,如果将前面那个数与后面那个数对比,如果前面那个数大的,就交换两个数的位置,如此循环多次,知道不再需要交换为止,这种方法需要花费的时间比较多
还有一种选择排序法,就是每次选出最大或者最小的,将它放在本次要排序的元素的最前面,然后下一次再选的时候上一次的那个最值就不再参与
有直接插入排序法,冒泡排序法,这两种比较多,
如果排列顺序很乱就用冒泡法,如果是个别颠倒顺序就用直接插入法比较快,冒泡的比较慢,程序网上有的
选择排序也比较简单
在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。
void print(int a[] int n int i){ cout<<"第"<<i+1 <<"趟 : "; for(int j= 0; j<8; j++){ cout<<a[j] <<" "; } cout<<endl; } /** * 数组的最小值 * * @return int 数组的键值 */ int SelectMinKey(int a[] int n int i) { int k = i; for(int j=i+1 ;j< n; ++j) { if(a[k] > a[j]) k = j; } return k; } /** * 选择排序 * */ void selectSort(int a[] int n){ int key tmp; for(int i = 0; i< n; ++i) { key = SelectMinKey(a ni); //选择最小的元素 if(key != i){ tmp = a[i]; a[i] = a[key]; a[key] = tmp; //最小元素与第i位置元素互换 } print(a n i); } } int main(){ int a[8] = {31572496}; cout<<"初始值:"; for(int j= 0; j<8; j++){ cout<<a[j] <<" "; } cout<<endl<<endl; selectSort(a 8); print(a88); }