赞
踩
- 找1000内素数
-
- Int main(){
-
- int a[1001] = {0};
-
- for(int I = 2;i<=1000;i++){
-
- if(a[i] == 0){
-
- printf("%d\n"ni);
-
- for(int j = i+I; j<=1000; j = j+i){
-
- a[j] = 1;
-
- }}}
-
- Return 0;
-
- }
-
-
-
- 二分法找峰值
-
- #include<stdio.h>
-
- int feng(int* nums, int n) {
-
- int left = 0;
-
- int right = n - 1;
-
- int mid;
-
- while (left < right) {
-
- mid = (left + right) / 2;
-
- if (nums[mid] >= nums[mid + 1]) {
-
- right = mid;
-
- }
-
- else {
-
- left = mid + 1;
-
- }
-
- }
-
- return left;
-
- }
-
- int main(){
-
- int nums[7] = { 0 };
-
- int n = sizeof(nums) / sizeof(int);
-
- for (int i = 0; i < n ; i++) {
-
- scanf("%d", &nums[i]);
-
- }
-
- int a;
-
- a = feng(nums,n);
-
- printf("%d",a );
-
- return 0;
-
- }
-
-
-
- 二分法找旋转数组最小值
-
-
-
- #include<stdio.h>
-
- int feng(int* nums, int n) {
-
- int left = 0;
-
- int right = n - 1;
-
- int mid;
-
- while (left < right) {
-
- mid = (left + right) / 2;
-
- if (nums[mid] > nums[right]) {
-
- left = mid + 1;
-
- }
-
- else if(nums[mid] < nums[right]){
-
- right = mid;
-
- }
-
- else {
-
- right--;
-
- }
-
- }
-
- return nums[left];
-
- }
-
- int main(){
-
- int nums[5] = { 0 };
-
- int n = sizeof(nums) / sizeof(int);
-
- for (int i = 0; i < n ; i++) {
-
- scanf("%d", &nums[i]);
-
- }
-
- int a;
-
- a = feng(nums,n);
-
- printf("%d",a );
-
- return 0;
-
- }
-
-
-
-
-
-
-
- 摩尔投票
-
-
-
- int moertoupiao(int* nums,int n) {
-
- int key = nums[0];
-
- int count = 0;
-
- for (int i = 0; i < n; i++) {
-
- if (nums[i] == key) {
-
- count++;
-
- }
-
- else {
-
- count--;
-
- }
-
- if (count <= 0) {
-
- key = nums[i + 1];
-
- }
-
- }
-
- return key;
-
- }
-
-
-
-
-
- 三色旗问题
-
- #include<stdio.h>
-
- void exchange(int* a, int* b) {
-
- int c = *a;
-
- *a = *b;
-
- *b = c;
-
- }
-
- void paixu(int* arr,int a,int b) {
-
- int index = 0;
-
- int i = a - 1;
-
- int j = b + 1;
-
- int temp = 1;
-
- while (index<j) {
-
- if (arr[index]==temp) {
-
- index++;
-
- }
-
- else if(arr[index]<temp){
-
- exchange(&arr[++i],&arr[index]);
-
- index++;
-
- }
-
- else if (arr[index]>temp) {
-
- exchange(&arr[--j],&arr[index]);
-
- }
-
- }
-
- }
-
- int main() {
-
- int arr[] = { 1,2,0,2,2,2,1,1,1,0,0,1,2,0,1,2,0,2,1,0,2,1,2,1 };
-
- int n = sizeof(arr) / sizeof(int);
-
- int i = 0;
-
- paixu(arr,i, n-1);
-
- for (int i = 0; i < n; i++) {
-
- printf("%d ", arr[i]);
-
- }
-
- return 0;
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。