zoukankan      html  css  js  c++  java
  • 算法01

    升入初中……然后报名CSP-J

    开始训练算法。
    今天还是回到C++吧。
    冒泡排序我觉的是算法中最基础的。所以我才记得住……
    MinGW版本的:

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
    	int sums;
    	cin >> sums;
    	int before[sums + 1], after[sums + 1];
    	memset(after, 0, sizeof(after));
    	for(int i = 1; i <= sums; i ++) {
    		cin >> before[i];
    		after[i] = before[i];
    	}
    	for(int i = 1; i <= sums - 1; i ++) {
    		for(int j = i; j <= sums; j ++) {
    			if(after[i] > after[j]) {
    				int temp = after[i];
    				after[i] = after[j];
    				after[j] = temp;
    			}
    		}
    	}
    	for(int i = 1; i <= sums; i ++) {
    		cout << after[i] << ' ';
    	}
    	cout << endl;
    	return 0;
    } 
    

    嗯……逐步分析下。
    代码写得比较保守,因此保留了before
    第一句:

    #include <bits/stdc++.h>
    using namespace std;
    

    万能库,不用说吧。。。
    然后:

    	int sums;
    	cin >> sums;
    	int before[sums + 1], after[sums + 1];
    	memset(after, 0, sizeof(after));
    

    首先输入有多少的数,输入下。

    	for(int i = 1; i <= sums; i ++) {
    		cin >> before[i];
    		after[i] = before[i];
    	}
    

    逐个输入数组内数据。
    然后是双重排序:

    	for(int i = 1; i <= sums - 1; i ++) {
    		for(int j = i; j <= sums; j ++) {
    			if(after[i] > after[j]) {
    				int temp = after[i];
    				after[i] = after[j];
    				after[j] = temp;
    			}
    		}
    	}
    

    冒泡就是这样,如果不行,交换下,因此时间复杂度还是稳定的,是(O(n^2))

    	for(int i = 1; i <= sums; i ++) {
    		cout << after[i] << ' ';
    	}
    	cout << endl;
    	return 0;
    

    一个个输出,最后换行。

  • 相关阅读:
    页面跳转
    获取gridview 某列的值
    C#日期格式化的几种处理方法(转)
    asp.net 退出 按钮
    asp.net控件大全(一)
    导出Excel
    DropDownList的二级联动 (SqlDataSource实现和SQL 绑定实现)
    asp.net控件大全(二)
    如何让Gridview在没有数据的时候显示表头(asp.net)
    自定义日期格式
  • 原文地址:https://www.cnblogs.com/7086cmd/p/algorithm01.html
Copyright © 2011-2022 走看看