c++基础入门笔记8排序

108 阅读1分钟

1.冒泡排序

在数组里,从左到右,相邻元素两两比较,若不符合排序,互换位置,直到最右边。然后重复以上操作,直到最右边-1。

int arr[7]={87,67,78,98,67,90,77};
for(int i=0;i<6;i++){
    for(int j=0;j<6-i;j++){
        if(arr[j]>arr[j+1]){
            int temp=arr[j];
            arr[j]=arr[j+1];
            arr[j+1]=temp;
        }
    }
}
for(int x=0;x<6;x++){
    cout<<arr[x]<<endl;
}

选择排序

简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

#include<iostream>
using namespace std;

int main() {
	int arr[7] = { 87,69,78,98,67,90,77 };
	for (int i = 0; i < 6; i++) {
		int min = i;
		for (int j = i + 1; j < 7; j++) {
			if (arr[j] < arr[min]) {
				min = j;
			}
		}
		int temp = arr[i];
		arr[i] = arr[min];
		arr[min] = temp;
	}
	for (int i = 0; i < 6; i++) {
		cout << arr[i] << endl;
	}
	system("pause");
	return 0;
}

插入排序

斗地主时,排牌的方式

int arr[7] = { 87,69,67,98,78,90,77 };
	for (int i = 1; i < 7; i++) {
		int x = i - 1;
		int temp = arr[i];
		while (x >= 0 && arr[x] > temp) {
			arr[x + 1] = arr[x];
			x--;
		}
		arr[x + 1] = temp;
	}
	for (int i = 0; i < 7; i++) {
		cout << arr[i] << endl;
	}