排序实验

#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<algorithm>
#include<time.h>
using namespace std;
 bool cmp(int a,int b)
  {
   return a>b;
  }
int main()
{
  int a[10];
  int i,j,t;
  srand(time(0));
  for(i=0;i<10;i++)
  {
a[i]=rand()%100;
     printf("%d ",a[i]);
  }
  printf("\n");
  
 
  sort(a,a+10,cmp);
   /* for(i=0;i<9;i++)
 for(j=0;j<9-i;j++)
    if(a[j]<a[j+1])
{
   t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}*/
 for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;

}
以下是数据结构查找排序实验的步骤和示例: 1. 二叉排序树查找: - 构造二叉排序树:根据给定的数据,构造一个二叉排序树。 - 查找元素:在二叉排序树中查找指定的元素。 示例: ```python # 构造二叉排序树 class Node: def __init__(self, value): self.value = value self.left = None self.right = None def insert(root, value): if root is None: return Node(value) if value < root.value: root.left = insert(root.left, value) else: root.right = insert(root.right, value) return root def construct_tree(data): root = None for value in data: root = insert(root, value) return root # 查找元素 def search(root, value): if root is None or root.value == value: return root if value < root.value: return search(root.left, value) return search(root.right, value) # 测试数据 data = [150, 70, 160, 190, 10, 55, 175] root = construct_tree(data) # 查找元素 elements = [150, 70, 160, 190, 10, 55, 175] for element in elements: result = search(root, element) if result: print(f"元素 {element} 在二叉排序树中找到了") else: print(f"元素 {element} 在二叉排序树中未找到") ``` 2. 二分查找: - 准备有序数据表:准备一个有序的数据表。 - 二分查找元素:在有序数据表中使用二分查找算法查找指定的元素。 示例: ```python def binary_search(data, target): low = 0 high = len(data) - 1 while low <= high: mid = (low + high) // 2 if data[mid] == target: return mid elif data[mid] < target: low = mid + 1 else: high = mid - 1 return -1 # 测试数据 data = [10, 55, 70, 150, 160, 175, 190] elements = [150, 70, 160, 190, 10, 55, 175] # 二分查找元素 for element in elements: index = binary_search(data, element) if index != -1: print(f"元素 {element} 在数据表中的下标为 {index}") else: print(f"元素 {element} 在数据表中未找到") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值